Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何读取Http响应_Android_Http Post - Fatal编程技术网

Android 如何读取Http响应

Android 如何读取Http响应,android,http-post,Android,Http Post,我正在使用OAuth 2.0对我的用户进行身份验证,我必须发出http post请求(发送我的客户机id、客户机机密等)。我想我已经成功地做到了。作为回应,我应该得到访问令牌和其他信息。但是当我在日志中打印响应时,它显示为“org.apache.http.message”。BasicHttpResponse@407e7bb0". 我在哪里可以找到留言?下面是我的代码,我遵循了这个示例 公共类PasteCode扩展活动{ @凌驾 创建时受保护的void(Bundle savedInstanceSt

我正在使用OAuth 2.0对我的用户进行身份验证,我必须发出http post请求(发送我的客户机id、客户机机密等)。我想我已经成功地做到了。作为回应,我应该得到访问令牌和其他信息。但是当我在日志中打印响应时,它显示为“org.apache.http.message”。BasicHttpResponse@407e7bb0". 我在哪里可以找到留言?下面是我的代码,我遵循了这个示例

公共类PasteCode扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.pastecode);
最终EditText代码输入=(EditText)findViewById(R.id.editText1);
按钮发送按钮=(按钮)findViewById(R.id.button1);
send_btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
最终字符串代码=codeinput.getText().toString();
新线程(newrunnable()){
@凌驾
公开募捐{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“https://accounts.google.com/o/oauth2/auth?");
ArrayList nameValuePair=新的ArrayList(5);
添加(新的BasicNameValuePair(“代码”,code));
添加(新的BasicNameValuePair(“客户端id”),“-----------”);
添加(新的BasicNameValuePair(“客户机密”),“--”);
添加(新的BasicNameValuePair(“重定向uri”,“urn:ietf:wg…”);
添加(新的BasicNameValuePair(“授权类型”、“授权代码”);
试一试{
setEntity(新的UrlEncodedFormEntity(nameValuePair));
}捕获(不支持的编码异常e){
//将错误写入日志
e、 printStackTrace();
}
//发出HTTP请求
试一试{
HttpResponse response=httpClient.execute(httpPost);
//将响应写入日志
Log.d(“Http响应:,Response.toString());
}捕获(客户端协议例外e){
//将异常写入日志
e、 printStackTrace();
}捕获(IOE异常){
//将异常写入日志
e、 printStackTrace();
}
}
}).start();
}
});
}
}

您可以使用
BufferedReader

BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuilder builder = new StringBuilder();
String str = "";

while ((str = rd.readLine()) != null) {
    builder.append(str);
}

String text = builder.toString();

nikis的回答应该很好,但我觉得这有点简洁。如果你看一下,你会发现这些实现是相对相似的。

非常感谢这两个,我使用BufferReader实现了它。
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuilder builder = new StringBuilder();
String str = "";

while ((str = rd.readLine()) != null) {
    builder.append(str);
}

String text = builder.toString();