请求头中的数据是由客户端加进去的,响应头中的数据由服务器加进去。
在获取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