我试图使用下面的代码将http响应转换为字符串,但我的响应字符串正在中间终止任何想法,如何将http响应转换为字符串,以便我不会得到任何缓冲区问题.
private static String convertStreamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append((line + "\n"));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)
有任何建议请帮忙.谢谢Deepesh
小智 112
我认为,有一种更简单的方法:
String result = EntityUtils.toString(resp_entity);
Run Code Online (Sandbox Code Playgroud)
对?
ayu*_*lin 24
像这样获取响应InputStream:
httpResponse = client.execute(request);
HttpEntity entity = httpResponse.getEntity();
InputStream is = entity.getContent();
Run Code Online (Sandbox Code Playgroud)
试试这个方法:
private static String convertStreamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append((line + "\n"));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)
Lau*_*ier 13
HttpResponse response = http.execute(httpMethod);
int responseCode = response.getStatusLine().getStatusCode();
switch(responseCode) {
case 200:
HttpEntity entity = response.getEntity();
if(entity != null) {
String responseBody = EntityUtils.toString(entity);
}
break;
}
Run Code Online (Sandbox Code Playgroud)
请参阅http://cdrussell.blogspot.com.es/2011/12/android-get-body-of-http-response-as.html
HttpPost httppost;
DefaultHttpClient httpclient;
ResponseHandler <String> res=new BasicResponseHandler();
List<NameValuePair> nameValuePairs;
String bytesSent;
httppost = new HttpPost(URL OF YOUR SITE);
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setContentCharset(params, "UTF-8");
httpclient = new DefaultHttpClient(params);
nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("key1", value1));
nameValuePairs.add(new BasicNameValuePair("key2", value2));
nameValuePairs.add(new BasicNameValuePair("key3", value3));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
bytesSent = httpclient.execute(httppost, res);
Run Code Online (Sandbox Code Playgroud)
这是使用此HTTPPOST的代码,您可以在String中获取响应.
如果必须将查询字符串传递给服务器,则可以使用 nameValuePairs
| 归档时间: |
|
| 查看次数: |
72153 次 |
| 最近记录: |