2

API に対して API 要求を行うと、JSON 形式で応答が返されます。

応答を行うと、これが得られSystem.Out.Printlnます。

HTTP/1.1 200 OK [Date: Thu, 04 Oct 2012 20:33:18 GMT, Server: Apache/1.3.33 (Unix) PHP/4.4.0, Cache-control: no-cache, must-revalidate, no-cache="Set-Cookie", private, Expires: Fri, 01 Jan 1990 00:00:00 GMT, Pragma: no-cache, X-CreationTime: 0.051, Set-Cookie: DT=1349382798:29998:365-l4; path=/; expires=Fri, 01-Jan-2020 00:00:00 GMT; domain=.wunderground.com, Connection: close, Transfer-Encoding: chunked, Content-Type: application/json; charset=UTF-8]

しかし、それは期待される応答ではなく、応答は次のようになるはずです。

response: {
name:
class:
}

Apache HTTP クライアントを使用しています。

DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url); 
HttpResponse response = httpclient.execute(httpget);
System.out.println(response);

期待される結果を得るには、次に何をすべきですか? 正しい方向へのポイントが必要です。

4

2 に答える 2

3

私はここで私自身の質問に答えています:

Apache Webサイトでもう少し調べたところ、次のことがわかりました。

HttpEntity entity = response.getEntity();
System.out.println(EntityUtils.toString(entity));

私を信じてください、それははるかに簡単で、魅力のように機能します。

于 2012-10-04T21:37:24.833 に答える
2

代わりに、次のようにする必要があります。

HttpResponse response = httpclient.execute(httpget);
StringBuilder sb = new StringBuilder();
DataInputStream in = new DataInputStream(response.getEntity().getContent()); 
String line;     
while ((line = in.readLine()) != null) { 
    sb.append(line);
} 
in.close(); 
String json = sb.toString(); 
于 2012-10-04T20:44:02.280 に答える