を使用してコンテンツな長さを得ることができない私は、次のコードを持っている:私はWiFi接続で動作するまでAndroidのURLConnectionのクラスは、3Gインターネット接続
URL url = new URL("http://myserver.com/getFile.php");
URLConnection conexion = url.openConnection();
conexion.connect();
int lenghtOfFile = conexion.getContentLength();
すべてが正常に動作します。 GPRS/3G接続しか利用できないときにこのコードを実行しようとすると、conexion.getContentLength()
は-1を返します。
理由は何ですか?
EDIT: getHeaderFields()を使用してヘッダーを確認しました。私は3Gネットワークを使用する場合、それらは異なっています。この場合、基本的にContent-Lengthはありません。なぜサーバーが別のヘッダを返すのか?私はファイルを提供するために特別なスクリプトを使用していない、私は与えられた場所に配置されているファイルを取得します。無線LANの場合の
全体ヘッダー:
{-範囲を受け入れ= [バイト]、コネクション= [キープアライブ]、コンテンツ長= [628254]、のContent-Type = [text/plainの。キープアライブ= [タイムアウト= 15]、最終変更= [文字セット= UTF-8]、日付= [Tue、29 Nov 2011 11:22:50 GMT]、ETag = ["7a0c7-9961e-4af3f38778500" Apache/2.2.9(Debian)PHP/5.2.6-1 + lenny9、Suhosin-patch mod_python/3.3.1 Python/2.6.6 mod_ssl/2.2 0.9のOpenSSL/0.9.8oのmod_wsgi/3.3のmod_perl/2.0.4のPerl/v5.10.0]} 3Gを使用した場合の
全体ヘッダー:
{=、バイト] [=接続-範囲を受け入れ[Keep-Alive]、Content-Type = [text/plain; Keep-Alive = [timeout = 15]、Last-Modified = ["0x00000000000000000000"]、 Apache/2.2.9(Debian)PHP/5.2.6-1 + lenny9、Suhosin-patch mod_python/3.3.1 Python/2.6.6 mod_ssl/2.2 .9 OpenSSL/0.9.8o mod_wsgi/3.3 mod_perl/2.0.4 Perl/v5.10.0]、Transfer-Encoding = [chunked]、Warning = [214 warkaz-fe07 "変換が適用されました]}
Accept-Encoding:gzipとHttpURLConnectionを無効にしましたか?私の場合、私はTransfer-Encodingを得ました。チャンクされ、Content-Lengthはマイナスでした。詳細については、私の答えを見てください。http://stackoverflow.com/a/23490820/1294681 – VinceStyling