2 qq 31488279 qq_31488279 于 2016.01.14 08:53 提问

安卓中如何获取http请求头?

如题,最近在整免流。求大神解答如何用代码获取http请求头。。。。。。。。。。。。。。

2个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.14 13:06
已采纳

HttpClient工具提供了设置和获取请求、响应头的方法的,详细参考:http://blog.csdn.net/z69183787/article/details/42966829

u011249920
u011249920   2016.01.14 09:21

例子:
public void run() {
7 //用HttpClient发送请求,分为五步
8 HttpClient httpCient = new DefaultHttpClient();
9 HttpGet httpGet = new HttpGet(“http://www.baidu.com”);
10
11 //放入请求头的内容,必须是以键值对的形式,这里以Accept-language为例
12 httpGet.addHeader(“Accept-Language”,”zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4″);
13 //获取请求头,并用Header数组接收
14 Header [] reqHeaders = httpGet.getAllHeaders();
15 //遍历Header数组,并打印出来
16 for (int i = 0; i < reqHeaders.length; i++) {
17 String name = reqHeaders[i].getName();
18 String value = reqHeaders[i].getValue();
19 Log.d(“http01″, “Http request: Name—>” + name + “,Value—>” + value);
20 }
21
22 try {
23 HttpResponse httpResponse = httpCient.execute(httpGet);
24
25 //获取响应头,并用Header数组接收
26 Header [] responseHeaders = httpResponse.getAllHeaders();
27 //遍历Header数组,并打印出来
28 for (int i = 0; i < responseHeaders.length; i++) {
29 String name = responseHeaders[i].getName();
30 String value = responseHeaders[i].getValue();
31 Log.d(“http01″, “Http response: Name—>” + name + “,Value—>” + value);
32 }
33
34 if (httpResponse.getStatusLine().getStatusCode() == 200) {
35 HttpEntity entity = httpResponse.getEntity();
36 String response = EntityUtils.toString(entity,”utf-8″);//将entity当中的数据转换为字符串
37
38 //在子线程中将Message对象发出去
39 Message message = new Message();
40 message.what = SHOW_RESPONSE;
41 message.obj = response.toString();
42 handler.sendMessage(message);
43 }
44
45 } catch (Exception e) {
46 // TODO Auto-generated catch block
47 e.printStackTrace();
48 }
49
50 }
51 }).start();//这个start()方法不要忘记了
52
53 }


qq_31488279
qq_31488279 thank you
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!