Java 如何打印从HttpResponse返回的消息?

Java 如何打印从HttpResponse返回的消息?,java,.net,android,httpresponse,Java,.net,Android,Httpresponse,我的安卓手机上有这个代码 URI uri = new URI(url); HttpPost post = new HttpPost(uri); HttpClient client = new DefaultHttpClient(); HttpResponse response = client.execute(post); 我有一个asp.net webform应用程序,该应用程序在加载此 Response.Output.Write("It worked"); 我想

我的安卓手机上有这个代码

   URI uri = new URI(url);
   HttpPost post = new HttpPost(uri);
   HttpClient client = new DefaultHttpClient();
   HttpResponse response = client.execute(post);
我有一个asp.net webform应用程序,该应用程序在加载此

 Response.Output.Write("It worked");
我想从HttpReport获取这个响应并打印出来。我该怎么做

我尝试了
response.getEntity().toString()
,但它似乎只是在内存中打印出了地址

谢谢使用。一行代码。有关使用它的Android项目示例,请参阅和

public void postData() {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.yoursite.com/user");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("id", "12345"));
        nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        ResponseHandler<String> responseHandler=new BasicResponseHandler();
        String responseBody = httpclient.execute(httppost, responseHandler);
        JSONObject response=new JSONObject(responseBody);
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
} 
public void postData(){
//创建一个新的HttpClient和Post头
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://www.yoursite.com/user");
试一试{
//添加您的数据
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“id”,“12345”);
添加(新的BasicNameValuePair(“stringdata”,“AndDev很酷!”);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
ResponseHandler ResponseHandler=新BasicResponseHandler();
字符串responseBody=httpclient.execute(httppost,responseHandler);
JSONObject response=新的JSONObject(ResponseBy);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
}捕获(IOE异常){
//TODO自动生成的捕捉块
}
} 
添加此帖子的组合并在-

处使用完整的HttpClient。一行代码。有关使用它的Android项目示例,请参阅和

public void postData() {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.yoursite.com/user");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("id", "12345"));
        nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        ResponseHandler<String> responseHandler=new BasicResponseHandler();
        String responseBody = httpclient.execute(httppost, responseHandler);
        JSONObject response=new JSONObject(responseBody);
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
} 
public void postData(){
//创建一个新的HttpClient和Post头
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://www.yoursite.com/user");
试一试{
//添加您的数据
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“id”,“12345”);
添加(新的BasicNameValuePair(“stringdata”,“AndDev很酷!”);
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
ResponseHandler ResponseHandler=新BasicResponseHandler();
字符串responseBody=httpclient.execute(httppost,responseHandler);
JSONObject response=新的JSONObject(ResponseBy);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
}捕获(IOE异常){
//TODO自动生成的捕捉块
}
} 

添加本文和完整的HttpClient的组合-

。它比ResponseHandler更加防弹,以防您在响应中得到不同的内容类型

ByteArrayOutputStream outstream = new ByteArrayOutputStream();
response.getEntity().writeTo(outstream);
byte [] responseBody = outstream.toByteArray();

我会用老办法。它比ResponseHandler更加防弹,以防您在响应中得到不同的内容类型

ByteArrayOutputStream outstream = new ByteArrayOutputStream();
response.getEntity().writeTo(outstream);
byte [] responseBody = outstream.toByteArray();

此代码将在respond中以
字符串的形式返回整个响应消息,在rsp中以
int
的形式返回状态代码

respond = response.getStatusLine().getReasonPhrase();

rsp = response.getStatusLine().getStatusCode();`

此代码将在respond中以
字符串的形式返回整个响应消息,在rsp中以
int
的形式返回状态代码

respond = response.getStatusLine().getReasonPhrase();

rsp = response.getStatusLine().getStatusCode();`

我使用了以下代码

BufferedReader r = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

StringBuilder total = new StringBuilder();

String line = null;

while ((line = r.readLine()) != null) {
   total.append(line);
}
r.close();
return total.toString();

我使用了以下代码

BufferedReader r = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

StringBuilder total = new StringBuilder();

String line = null;

while ((line = r.readLine()) != null) {
   total.append(line);
}
r.close();
return total.toString();

最简单的方法可能是使用
org.apache.http.util.EntityUtils

String message = EntityUtils.toString(response.getEntity());
它读取实体的内容并将其作为字符串返回。使用实体(如果有)中的字符集转换内容,否则使用“ISO-8859-1”

如有必要,您可以显式传递默认字符集-例如

String message = EntityUtils.toString(response.getEntity(). "UTF-8");

它以字符串形式获取实体内容,如果在实体中找不到,则使用提供的默认字符集。如果传递的默认字符集为null,则使用默认的“ISO-8859-1”。

最简单的方法可能是使用
org.apache.http.util.EntityUtils

String message = EntityUtils.toString(response.getEntity());
它读取实体的内容并将其作为字符串返回。使用实体(如果有)中的字符集转换内容,否则使用“ISO-8859-1”

如有必要,您可以显式传递默认字符集-例如

String message = EntityUtils.toString(response.getEntity(). "UTF-8");

它以字符串形式获取实体内容,如果在实体中找不到,则使用提供的默认字符集。如果传递的默认字符集为空,则使用默认的“ISO-8859-1”。

这在哪个android api版本可用?我可能不得不重写come代码:我想它从一开始就存在了,或者至少从安卓0.9开始就存在了。它是标准HttpClient 4.x包的一部分。它在哪个android api版本可用?我可能不得不重写come代码:我想它从一开始就存在了,或者至少从安卓0.9开始就存在了。它是标准HttpClient 4.x包的一部分。