如何从我的http响应android获取一个字符串?

时间:2013-03-25 15:35:09

标签: android string http httpresponse

我看到一些非常难看的代码来自人们编写自己的方法将HttpResponse转换为字符串以便稍后使用,看起来像这样:

httppost.setEntity(new UrlEncodedFormEntity(valuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF8"),8);
StringBuilder sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";
while ((line = reader.readLine()) != null) {
    sb.append(line + "\n");
}
is.close();
String result = sb.toString();

不仅有点混乱,而且它真的很难看,而且我经常无法分辨出代码发生了什么,因为这个混乱在它之前。有没有更好的方法呢?

2 个答案:

答案 0 :(得分:43)

是的,有!你可以在一条线上完成所有这些!像这样:

response = client.execute(post);
String responseStr = EntityUtils.toString(response.getEntity());

快乐的应用制作

答案 1 :(得分:4)

我是使用HttpClient.execute documentation的响应处理程序完成的。使用handler作为.execute方法的第二个参数定义了响应的格式。
我的代码如下:

HttpClient client = new DefaultHttpClient();

        HttpGet request = new HttpGet(params[0]);
        ResponseHandler<String> handler = new BasicResponseHandler();
        String response = "";
        try {
            response = client.execute(request, handler);
        } catch (IOException e) {
            e.printStackTrace();
        }

params[0]是一个字符串形式的URL。说我的服务器以JSON返回响应可能很重要。所以最后我将response字符串转换为JSON。