请求头中的数据是由客户端加进去的,响应头中的数据由服务器加进去。
在获取OAuth认证的时候,有两种方式:一种是在请求头中加入指定的参数,利用GET方法发送给服务器。另外一种是用POST方法发送给服务器
通过请求头使用GET方法的参考代码如下:
package com.example.http01;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.buttonId);
ButtonListener listener = new ButtonListener();
button.setOnClickListener(listener);
}
class ButtonListener implements OnClickListener{
@Override
public void onClick(View view) {
// 原则:在主线程当中不能够访问网络
NetworkThread nt = new NetworkThread();
nt.start();
}
}
class NetworkThread extends Thread{
@Override
public void run() {
// 创建HttpClient
HttpClient httpClient = new DefaultHttpClient();
// 创建代表请求的对象,参数是访问的服务器地址
// http://www.marschen.com/data1.html
HttpGet httpGet = new HttpGet("http://www.marschen.com/data1.html");
httpGet.addHeader("Accept-language", "zh-CN");
//获取请求头
Header [] reqHeaders = httpGet.getAllHeaders();
for(int i = 0;i <reqHeaders.length; i++){
String key = reqHeaders[i].getName();
String value = reqHeaders[i].getValue();
Log.d("Http01", "request header--Name:" + key + "value: " + value);
}
// 执行请求,获取服务器发还的相应对象
try{
HttpResponse resp = httpClient.execute(httpGet);
//获取响应头
Header [] respHeaders = resp.getAllHeaders();
for (int i = 0; i < respHeaders.length; i++) {
String key = respHeaders[i].getName();
String value = respHeaders[i].getValue();
Log.d("Http01", "response header--Name:" + key + "value: " + value);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
}
获取到的反馈信息如下所示
08-15 05:35:54.428: D/Http01(1489): request header--Name:Accept-languagevalue: zh-CN
08-15 05:30:59.462: D/Http01(841): response header--Name:Servervalue: nginx/1.0.10
08-15 05:30:59.462: D/Http01(841): response header--Name:Datevalue: Fri, 15 Aug 2014 05:30:59 GMT
08-15 05:30:59.468: D/Http01(841): response header--Name:Content-Typevalue: text/html
08-15 05:30:59.468: D/Http01(841): response header--Name:Content-Lengthvalue: 27
08-15 05:30:59.468: D/Http01(841): response header--Name:Last-Modifiedvalue: Thu, 24 Jul 2014 16:28:21 GMT
08-15 05:30:59.468: D/Http01(841): response header--Name:Connectionvalue: keep-alive
08-15 05:30:59.468: D/Http01(841): response header--Name:Accept-Rangesvalue: bytes