URL を呼び出し、応答を取得し、エンティティがある場合はそのエンティティを転送する、かなり単純なコードがいくつかあります。
問題は、エンティティ コンテンツの長さのテストを追加したときに発生します。プロキシ経由で呼び出しを実行すると、Content-Length ヘッダーが適切に設定されていることがわかります。
Content-Disposition: attachment; filename="something.zip";
Content-Length: 12390600
Content-Type: application/zip
したがって、私のコードでは次のことを確認します。
HttpResponse response = _client.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null && entity.getContentLength() > 0) {
handleEntity(entity);
}
応答を見ると、コンテンツの長さを除いて、予想されるすべてのヘッダーがそこにあります。エンティティ オブジェクトを確認すると、getContentLength()呼び出しに対して -1 が返されます。ドキュメントでは、コンテンツの長さが Long.MAX_VALUE を超えると負の数が返されますが、ここではそうではありません。
そのため、今のところこのチェックを削除しましたが、このコンテキストでの意味を理解したいと思います. ドキュメントは、「既知の場合」コンテンツの長さを返すという警告を追加しますが、この場合、既知であるべきであるように見えます。
ここで何が起こっているのかについての洞察をありがとう...