This example shows you how to get the Http response header values in Java.
1. Standard JDK example.
URL obj = new URL("http://tuts.heomi.net"); 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");
2. Apache HttpClient example.
HttpClient client = HttpClientBuilder.create().build(); HttpGet request = new HttpGet("http://tuts.heomi.net"); 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();
1. URLConnection Example
See a full example to get response headers value via URLConnection.
ResponseHeaderUtil.java
package com.favtuts.http; 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://tuts.heomi.net"); 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(); } } }
Output
Printing Response Header...
Key : null ,Value : [HTTP/1.1 301 Moved Permanently]
Key : Server ,Value : [nginx/1.18.0 (Ubuntu)]
Key : Connection ,Value : [keep-alive]
Key : Content-Length ,Value : [178]
Key : Date ,Value : [Thu, 12 May 2022 06:04:27 GMT]
Key : Location ,Value : [https://tuts.heomi.net/]
Key : Content-Type ,Value : [text/html]
Get Response Header By Key ...
Server - nginx/1.18.0 (Ubuntu)
Done
2. Apache HttpClient Example
This is an equivalent example, but using Apache HttpClient.
ResponseHeaderUtil.java
package com.favtuts.http; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Map; 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) { getResponseHeadersApacheHttpClient(); } private static void getResponseHeadersApacheHttpClient() { try { HttpClient client = HttpClientBuilder.create().build(); HttpGet request = new HttpGet("http://tuts.heomi.net"); 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(); } } }
Output
Printing Response Header...
Key : Server ,Value : nginx/1.18.0 (Ubuntu)
Key : Date ,Value : Thu, 12 May 2022 06:12:37 GMT
Key : Content-Type ,Value : text/html; charset=UTF-8
Key : Transfer-Encoding ,Value : chunked
Key : Connection ,Value : keep-alive
Key : Vary ,Value : Accept-Encoding
Key : Link ,Value : <https://www.tuts.heomi.net/wp-json/>; rel="https://api.w.org/"
Key : Strict-Transport-Security ,Value : max-age=31536000
Get Response Header By Key ...
Server - nginx/1.18.0 (Ubuntu)
Done
Download Source Code
$ git clone https://github.com/favtuts/java-core-tutorials-examples
$ cd java-misc/http