次のコードを使用して Content-Length ヘッダーを設定する必要がある Web サービスに投稿しようとしています。
// EDIT: added apache connector code
ClientConfig clientConfig = new ClientConfig();
ApacheConnector apache = new ApacheConnector(clientConfig);
// setup client to log requests and responses and their entities
client.register(new LoggingFilter(Logger.getLogger("com.example.app"), true));
Part part = new Part("123");
WebTarget target = client.target("https://api.thing.com/v1.0/thing/{thingId}");
Response jsonResponse = target.resolveTemplate("thingId", "abcdefg")
.request(MediaType.APPLICATION_JSON)
.header(HttpHeaders.AUTHORIZATION, "anauthcodehere")
.post(Entity.json(part));
リリース ノートhttps://java.net/jira/browse/JERSEY-1617および Jersey 2.0 ドキュメントhttps://jersey.java.net/documentation/latest/message-body-workers.htmlから、Content-長さは自動設定されます。しかし、リクエストに Content-Length が存在しないことを示す 411 レスポンス コードがサーバーから返されます。
Content-Length ヘッダー セットを取得する最良の方法を知っている人はいますか?
リクエストで Content-Length ヘッダーが生成されないことをロガーを設定することで確認しました。
ありがとう。