Come ottenere il codice di risposta HTTP per un URL in Java?

Per favore, dimmi i passaggi o il codice per ottenere il codice di risposta di un URL particolare.

HttpURLConnection :

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

Questo non è affatto un esempio robusto; dovrai gestire IOException e quant’altro. Ma dovrebbe iniziare.

Se hai bisogno di qualcosa con più capacità, controlla HttpClient .

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

Potresti provare quanto segue:

 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"); } } } 
 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); } } 

Questo ha funzionato per 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); } } 

Questo è ciò che ha funzionato per 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(); } } 

Spero che questo aiuti qualcuno 🙂

Prova questo pezzo di codice che sta controllando i 400 messaggi di errore

 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"); } 
 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()); 

è ansible utilizzare la connessione URL http / https di java per ottenere il codice di risposta dal sito Web e altre informazioni e qui è un codice di esempio.

  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(); } 

Modo efficiente per ottenere dati (con carico utile non uniforms) tramite 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(); } }