[英]HttpResponse and BufferedReader
我正在尝试读取缓冲区(Android应用程序)并将其值设置为TextView
'httpStuff'
。 但是我不认为我从URI得到了一些回应。
我没有任何运行时错误。 我尝试了许多具有相同逻辑的风格。 似乎没有任何作用。
清单中已经设置了INTERNET
权限。 SdkVersion="15"
。 有什么帮助吗?
HttpClient client = new DefaultHttpClient();
URI website = new URI("http://www.mybringback.com");
HttpGet request = new HttpGet();
request.setURI(website);
HttpResponse response = client.execute(request);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
BufferedReader in = new BufferedReader(new InputStreamReader(is));
httpStuf.setText( in.readLine());
我认为您丢失了while循环,并且当您仅在in.readLine()
说时,可能是它从响应中返回了空行,尽管它具有足够的数据。所以请确保像并检查其内容。
while ((line = rd.readLine()) != null) {
httpStuf.setText(line+"\r\n");
}
希望这会帮助你。
这段代码对我有用
InputStream is = response.getEntity().getContent();
String strResponse = inputStreamToString(is);
private String inputStreamToString(InputStream is)
{
String line = "";
StringBuilder total = new StringBuilder();
// Wrap a BufferedReader around the InputStream
BufferedReader rd = new BufferedReader(new InputStreamReader(is), 1024 * 4);
// Read response until the end
try
{
while ((line = rd.readLine()) != null)
{
total.append(line);
}
} catch (IOException e)
{
Log.e(TAG, "error build string" + e.getMessage());
}
// Return full string
return total.toString();
}
尝试获取response
的状态码,然后可以与( HTTP status )比较
int responseCode=response.getStatusLine().getStatusCode()
我使用这种方法只是捕获HTTP响应,对我来说很好用。
public String httpGetResponse(String url) {
try {
Log.i("HTTP Request", "httpGet Request for : " + url);
DefaultHttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
//get.setHeader("Connection", "keep-alive");
HttpResponse response = client.execute(get);
InputStream is = response.getEntity().getContent();
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(is));
StringBuilder str = new StringBuilder();
String line = null;
while ((line = bufferedReader.readLine()) != null) {
str.append(line + "\n");
}
return str.toString();
} catch (Exception e) {
Log.e("HTTP error", "Error in function httpGetResponse : "
+ e.getMessage());
return null;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.