我使用 HttpUrlConnection 向服务器发出 GET 请求。连接后:
- 我得到响应代码:200
- 我收到响应消息:好的
我得到输入流,没有抛出异常但是:
- 在一个独立的程序中,我得到了响应的主体,正如预期的那样:
{"name":"my name","birthday":"01/01/1970","id":"100002215110084"}
- 在 android 活动中,流是空的(available() == 0),因此我无法获取任何文本。
有什么提示或线索可循吗?谢谢。
编辑:这是代码
请注意:我使用import java.net.HttpURLConnection;
的是标准的 http Java 库。我不想使用任何其他外部库。事实上,我在 android 中使用 apache 的 httpclient 库确实遇到了问题(apk 编译器不能使用它们的一些匿名 .class)。
好吧,代码:
URLConnection theConnection;
theConnection = new URL("www.example.com?query=value").openConnection();
theConnection.setRequestProperty("Accept-Charset", "UTF-8");
HttpURLConnection httpConn = (HttpURLConnection) theConnection;
int responseCode = httpConn.getResponseCode();
String responseMessage = httpConn.getResponseMessage();
InputStream is = null;
if (responseCode >= 400) {
is = httpConn.getErrorStream();
} else {
is = httpConn.getInputStream();
}
String resp = responseCode + "\n" + responseMessage + "\n>" + Util.streamToString(is) + "<\n";
return resp;
我懂了:
200
OK
响应正文
但只有
200 好
在安卓中