org.restlet:WebServiceに対するJSONコンテンツの投稿HTTPエラー411(長さが必須)

StackOverflow https://stackoverflow.com/questions/3678962

質問

簡素化されたコードの例: 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 ...");

このコンストラクターは、もちろん、文字列の長さであるサイズを計算できるため、適切なコンテンツレングスヘッダーが設定され、すべてがスムーズに機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top