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