org.restlet:WebServiceに対するJSONコンテンツの投稿HTTPエラー411(長さが必須)
-
02-10-2019 - |
質問
簡素化されたコードの例: http://pastebin.com/9zqxsxi9
やあ
Restlet 2.0ライブラリとGpodder Webサービスを試したかったのですが、どういうわけか、木の木材が見えない場所に到達しました。この例のサービスには、HTTP認証が必要であり、JSONコンテンツをURLに投稿する必要があります。複雑なことはありませんが、デバッグビューにリクエストオブジェクトが必要なコンテンツを含むと主張している場合でも、RESTFUL WEBSVICEの応答は、リクエストのHTTPヘッダーがコンテンツを欠いていると信じるようになります。
理由は何ですか?前もって感謝します。
解決
問題は、私が見たWriterRepresentationの実装のどれも(JSonRepresentation、JacksonRepresentation、XstreamRepresentation)が、オブジェクトが渡されたときに表現のサイズを設定しないことです。したがって、新しいJacksonrepresentation(MAP)を作成する場合、サイズは計算されません。
マップコンテンツの長さと呼び出しlespressation.setsize()を手動で計算する必要があります。または、私がしたように、aを使用します
新しいjsonrepresentation( "a json string ...");
このコンストラクターは、もちろん、文字列の長さであるサイズを計算できるため、適切なコンテンツレングスヘッダーが設定され、すべてがスムーズに機能します。
所属していません StackOverflow