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