最大リダイレクトとは別に、HttpclientにURLの最大ダウンロードサイズを指定する方法はありますか?最大ダウンロードサイズを指定するにはどうすればよいですか?
2
A
答えて
1
を呼び出すと、ディスクに保存されていないことを意味し、ストリーミングやバッファリングすることができます。リソースをストリームとしてダウンロードし、手動でダウンロードしたバイト数を把握する必要があります。それがHTTPの仕組みです。
2
AFAIKサーバーに最大応答サイズを伝えるHTTPヘッダーはありません。応答のContent-Length
を確認し、応答が大きすぎる場合はすぐに戻ります。それが指定されていない場合(サーバー側では未知数であっても)、唯一のオプションはダウンロードを開始することです。心配しないでください:HttpClient.execute().getEntity()
に電話すると、内容は完全にはどこでもダウンロードされません。HttpEntity
は、それが完全にメモリに保持またはできるだけ早くあなたがContent-Length
背中を取得しない場合、それはオプションである
1
これはジャロッドの答えに従って、私は問題を解決することになった方法です:
HttpGet request = new HttpGet();
request.setURI(new URI(url));
response = client.execute(request);
BufferedReader in;
in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String line = "";
char buffer[] = new char[1024];
int totalReadSize = 0, currentRead=0;
while ((currentRead = in.read(buffer,0,buffer.length)) != -1)
{
totalReadSize += currentRead;
line = new String(buffer);
sb.append(line);
if (totalReadSize > MAX_DOWNLOAD_SIZE)
{
client.getConnectionManager().shutdown();
throw new Exception("File too large");
}
}
関連する問題
- 1. MVCアプリケーションで最大ダウンロードサイズを増やすにはどうすればよいですか?
- 2. 最小または最大の製品を設定するにはどうすればよいですか?
- 3. Content-LengthというHTTPヘッダーでファイルのダウンロードサイズを見つけるにはどうすればよいですか?
- 4. NServiceBus.Host.exeでエンドポイントクラスを指定するにはどうすればよいですか?
- 5. Phoenix.ConnTestでフォーマットを指定するにはどうすればよいですか?
- 6. itunesconnectでデバイスを指定するにはどうすればよいですか?
- 7. VBAで列を指定するにはどうすればよいですか?
- 8. バワーオーバーライドでバージョンを指定するにはどうすればよいですか?
- 9. コントロールにスマートタグを指定するにはどうすればよいですか?
- 10. MySQLで最大値に達するフィールドを特定するにはどうすればよいですか?
- 11. クランフォーマットファイルを指定するにはどうすればよいですか?
- 12. ブラウザアクションのホットキーを指定するにはどうすればよいですか?
- 13. コマンドライン引数を指定するにはどうすればよいですか?
- 14. 設定されている最大のJavaヒープサイズを調べるにはどうすればよいですか?
- 15. FCM/GCM JSONペイロード - 大きなアイコンを指定するにはどうすればよいですか?
- 16. ジェネリッククラスのジェネリックコレクションタイプも指定するにはどうすればよいですか?
- 17. 特定の列で最大日付で行を取得するにはどうすればよいですか?
- 18. JGoodies FormLayoutで最小および最大両方のセルサイズを指定するにはどうすればよいですか?
- 19. CSS:テーブルに最小幅を指定するにはどうすればよいですか?
- 20. 場所を指定してジェネリックを指定するにはどうすればよいですか?
- 21. Docbookで最大の画像の高さを設定するにはどうすればよいですか?
- 22. アンドロイドのconstraintLayoutでビューの最大幅を設定するにはどうすればよいですか?
- 23. ライブチャートでy軸の最大ステップ数を設定するにはどうすればよいですか?
- 24. IOSでビューの最大幅を設定するにはどうすればよいですか?
- 25. Linuxで最大TCP受信ウィンドウサイズを設定するにはどうすればよいですか?
- 26. AndroidでNestedScrollViewの最大高さを設定するにはどうすればよいですか?
- 27. アンドロイドのラップコンテンツで最大の高さを設定するにはどうすればよいですか?
- 28. 最大高さをDialogに設定するにはどうすればよいですか?
- 29. スクロールの高さを最大に設定するにはどうすればよいですか?
- 30. 度を最大360に設定するにはどうすればよいですか?
あなたは(私が推測するContent-Typeヘッダから取られた)にInputStreamReaderの文字セットを指定する必要があります – xtian