0

アプリケーションで Web サービスを呼び出そうとしていますが、エラーは発生しません。URL は適切なものであり、(ブラウザー経由で) 何かを返しますが、コンテンツは取得されません。

try {
    HttpClient httpclient = new DefaultHttpClient();
    HttpGet httpget = new HttpGet(url);
    HttpResponse response = httpclient.execute(httpget);
    HttpEntity entity = response.getEntity();
    int lenght = (int) entity.getContentLength();
    is = entity.getContent();
} catch (Exception e) {
    Log.e("log_tag", "Error in http connection" + e.toString());
}

彼が受け取る空の応答のため、長さは-1に等しい

URL からの応答は HTML である必要がありますか? または、私が出力したものはすべて HttpClient で取得できますか?

4

2 に答える 2

1

応答は HTML である必要はありませんが、サーバー側が応答で content-length ヘッダーを返さない場合、長さは負になります。

于 2012-07-26T03:24:58.727 に答える
1

応答は必ずしも HTML である必要はありません。

getContentLength() によって返される負の値は、コンテンツの長さがサーバーによって返されないことを意味します。内容がないわけではありません。リクエストによってコンテンツが返されても、getContentLength() によって負の値が返される可能性があります。

リクエストによって返されたコンテンツを引き続き取得できます。

ByteArrayOutputStream baos = new ByteArrayOutputStream();
entity.writeTo(baos);
String contentString = baos.toString();
于 2012-07-26T03:26:32.910 に答える