How to get HTTP response code for a URL in Java?

JavaHttpHttp Status-Codes

Java Problem Overview


Please tell me the steps or code to get the response code of a particular URL.

Java Solutions


Solution 1 - Java

HttpURLConnection:

URL url = new URL("http://example.com");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.connect();

int code = connection.getResponseCode();

This is by no means a robust example; you'll need to handle IOExceptions and whatnot. But it should get you started.

If you need something with more capability, check out HttpClient.

Solution 2 - Java

URL url = new URL("http://www.google.com/humans.txt");
HttpURLConnection http = (HttpURLConnection)url.openConnection();
int statusCode = http.getResponseCode();

Solution 3 - Java

You could try the following:

class ResponseCodeCheck 
{

    public static void main (String args[]) throws Exception
    {
   
        URL url = new URL("http://google.com");
        HttpURLConnection connection = (HttpURLConnection)url.openConnection();
        connection.setRequestMethod("GET");
        connection.connect();

        int code = connection.getResponseCode();
        System.out.println("Response code of the object is "+code);
        if (code==200)
        {
            System.out.println("OK");
        }
    }
}

Solution 4 - Java

import java.io.IOException;
import java.net.URL;
import java.net.HttpURLConnection;

public class API{
	public static void main(String args[]) throws IOException
	{
		URL url = new URL("http://www.google.com");
		HttpURLConnection http = (HttpURLConnection)url.openConnection();
		int statusCode = http.getResponseCode();
		System.out.println(statusCode);
	}
}

Solution 5 - Java

This has worked for me :

  		    import org.apache.http.client.HttpClient;
			import org.apache.http.client.methods.HttpGet;  
			import org.apache.http.impl.client.DefaultHttpClient;
			import org.apache.http.HttpResponse;
			import java.io.BufferedReader;
			import java.io.InputStreamReader;



			public static void main(String[] args) throws Exception {	
						HttpClient client = new DefaultHttpClient();
						//args[0] ="http://hostname:port/xyz/zbc";
						HttpGet request1 = new HttpGet(args[0]);
						HttpResponse response1 = client.execute(request1);
						int code = response1.getStatusLine().getStatusCode();
							
						 try(BufferedReader br = new BufferedReader(new InputStreamReader((response1.getEntity().getContent())));){
							// Read in all of the post results into a String.
							String output = "";
							Boolean keepGoing = true;
							while (keepGoing) {
								String currentLine = br.readLine();			 
								if (currentLine == null) {
									keepGoing = false;
								} else {
									output += currentLine;
								}
							}
							System.out.println("Response-->"+output);   
						 }
							
						 catch(Exception e){
							  System.out.println("Exception"+e);  
							
						  }
						  
					  
				   }

Solution 6 - Java

This is what worked for me:

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;

public class UrlHelpers {

    public static int getHTTPResponseStatusCode(String u) throws IOException {

        URL url = new URL(u);
        HttpURLConnection http = (HttpURLConnection)url.openConnection();
        return http.getResponseCode();
    }
}

Hope this helps someone :)

Solution 7 - Java

Efficient way to get data(With uneven payload) by scanner.

public static String getResponseFromHttpUrl(URL url) throws IOException {
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    try {
        InputStream in = urlConnection.getInputStream();

        Scanner scanner = new Scanner(in);
        scanner.useDelimiter("\\A");  // Put entire content to next token string, Converts utf8 to 16, Handles buffering for different width packets

        boolean hasInput = scanner.hasNext();
        if (hasInput) {
            return scanner.next();
        } else {
            return null;
        }
    } finally {
        urlConnection.disconnect();
    }
}

Solution 8 - Java

Try this piece of code which is checking the 400 error messages

huc = (HttpURLConnection)(new URL(url).openConnection());

huc.setRequestMethod("HEAD");

huc.connect();

respCode = huc.getResponseCode();

if(respCode >= 400) {
	System.out.println(url+" is a broken link");
} else {
	System.out.println(url+" is a valid link");
}

Solution 9 - Java

This is the full static method, which you can adapt to set waiting time and error code when IOException happens:

  public static int getResponseCode(String address) {
    return getResponseCode(address, 404);
  }

  public static int getResponseCode(String address, int defaultValue) {
    try {
      //Logger.getLogger(WebOperations.class.getName()).info("Fetching response code at " + address);
      URL url = new URL(address);
      HttpURLConnection connection = (HttpURLConnection) url.openConnection();
      connection.setConnectTimeout(1000 * 5); //wait 5 seconds the most
      connection.setReadTimeout(1000 * 5);
      connection.setRequestProperty("User-Agent", "Your Robot Name");
      int responseCode = connection.getResponseCode();
      connection.disconnect();
      return responseCode;
    } catch (IOException ex) {
      Logger.getLogger(WebOperations.class.getName()).log(Level.INFO, "Exception at {0} {1}", new Object[]{address, ex.toString()});
      return defaultValue;
    }
  }

Solution 10 - Java

HttpURLConnection connection = (HttpURLConnection) url.openConnection();
			connection.setDoOutput(true);
			connection.setDoInput(true);
			connection.setRequestMethod("POST");

. . . . . . .

System.out.println("Value" + connection.getResponseCode());
			 System.out.println(connection.getResponseMessage());
			 System.out.println("content"+connection.getContent());

Solution 11 - Java

you can use java http/https url connection to get the response code from the website and other information as well here is a sample code.

 try {
			
			url = new URL("https://www.google.com"); // create url object for the given string	
			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
			if(https_url.startsWith("https")){
				 connection = (HttpsURLConnection) url.openConnection();
			}

			((HttpURLConnection) connection).setRequestMethod("HEAD");
			connection.setConnectTimeout(50000); //set the timeout
			connection.connect(); //connect
			String responseMessage = connection.getResponseMessage(); //here you get the response message
			 responseCode = connection.getResponseCode(); //this is http response code
			System.out.println(obj.getUrl()+" is up. Response Code : " + responseMessage);
			connection.disconnect();`
}catch(Exception e){
e.printStackTrace();
}

Solution 12 - Java

Its a old question, but lets to show in the REST way (JAX-RS):

import java.util.Arrays;
import javax.ws.rs.*

(...)

Response response = client
	.target( url )
	.request()
	.get();

// Looking if response is "200", "201" or "202", for example:
if( Arrays.asList( Status.OK, Status.CREATED, Status.ACCEPTED ).contains( response.getStatusInfo() ) ) {
	// lets something...
}

(...)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAjitView Question on Stackoverflow
Solution 1 - JavaRob HruskaView Answer on Stackoverflow
Solution 2 - JavakwoView Answer on Stackoverflow
Solution 3 - JavaAshish ShardaView Answer on Stackoverflow
Solution 4 - JavaRaja SinghView Answer on Stackoverflow
Solution 5 - JavaSubhasish SahuView Answer on Stackoverflow
Solution 6 - JavaJeverickView Answer on Stackoverflow
Solution 7 - Javauser8024555View Answer on Stackoverflow
Solution 8 - Javalokesh sharmaView Answer on Stackoverflow
Solution 9 - JavaMladen AdamovicView Answer on Stackoverflow
Solution 10 - JavaneoeahitView Answer on Stackoverflow
Solution 11 - JavacaptainchhalaView Answer on Stackoverflow
Solution 12 - JavaThiago SperandioView Answer on Stackoverflow