Java代码获取HTTP响应标头的方法分享

乔欣 Java经验 发布时间:2023-02-09 06:35:57 阅读数:16121 1
下文笔者讲述java代码获取响应头的方法分享,如下所示
实现思路:
    方式1:
	   使用URLConnection对象中的getHeaderField方法获取所有表头信息
	方式2:
	   使用Apache HttpClient中的getAllHeades()方法返回所有表头

//原生JDK方式
URL obj = new URL("http://java265.com");
	URLConnection conn = obj.openConnection();
	
	//get all headers
	Map<String, list<String>> map = conn.getHeaderFields();
	for (Map.Entry<String, List<String>> entry : map.entrySet()) {
		System.out.println("Key : " + entry.getKey() + 
                 " ,Value : " + entry.getValue());
	}
	
	//get header by 'key'
	String server = conn.getHeaderField("Server");

//使用Apache HttpClient 
HttpClient client = HttpClientBuilder.create().build();
	HttpGet request = new HttpGet("http://java265.com");
	HttpResponse response = client.execute(request);
	
	//get all headers		
	Header[] headers = response.getAllHeaders();
	for (Header header : headers) {
		System.out.println("Key : " + header.getName() 
		      + " ,Value : " + header.getValue());
	}
 
	//get header by 'key'
	String server = response.getFirstHeader("Server").getValue();

URLConnection

package com.java265;
 
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
 
public class ResponseHeaderUtil {
 
  public static void main(String[] args) {
 
    try {
	URL obj = new URL("http://java265.com");
	URLConnection conn = obj.openConnection();
	Map<String, List<String>> map = conn.getHeaderFields();
 
	System.out.println("Printing Response Header...\n");
 
	for (Map.Entry<String, List<String>> entry : map.entrySet()) {
		System.out.println("Key : " + entry.getKey() 
                           + " ,Value : " + entry.getValue());
	}
 
	System.out.println("\nGet Response Header By Key ...\n");
	String server = conn.getHeaderField("Server");
 
	if (server == null) {
		System.out.println("Key 'Server' is not found!");
	} else {
		System.out.println("Server - " + server);
	}
 
	System.out.println("\n Done");
 
    } catch (Exception e) {
	e.printStackTrace();
    }
 
  }
}

Apache HttpClient打印所有表头信息

package com.java265;
 
import org.apache.http.Header;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;
 
public class ResponseHeaderUtil {
  public static void main(String[] args) {
    try {
	HttpClient client = HttpClientBuilder.create().build();
	HttpGet request = new HttpGet("http://java265.com");
	HttpResponse response = client.execute(request);
			
	System.out.println("Printing Response Header...\n");
 
	Header[] headers = response.getAllHeaders();
	for (Header header : headers) {
		System.out.println("Key : " + header.getName() 
                           + " ,Value : " + header.getValue());
 
	}
 
	System.out.println("\nGet Response Header By Key ...\n");
	String server = response.getFirstHeader("Server").getValue();
 
	if (server == null) {
		System.out.println("Key 'Server' is not found!");
	} else {
		System.out.println("Server - " + server);
	}
 
	System.out.println("\n Done");
 
    } catch (Exception e) {
	e.printStackTrace();
    }
  }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202302/16758976115720.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者