获取请求头和响应头

时间:2022-12-29 13:22:46

请求头中的数据是由客户端加进去的,响应头中的数据由服务器加进去。

 在获取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