Je travaille sur Ubuntu 12.04. C'est mon code simple pour implémenter la méthode HTTP GET en utilisant URLConnection.Demande HTTP GET avec URLConnection impossible d'accéder à n'importe quelle page
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
public class HttpURLConnectionExample {
private final String USER_AGENT = "Mozilla/5.0";
public static void main(String[] args) throws Exception {
HttpURLConnectionExample http = new HttpURLConnectionExample();
System.out.println("Testing 1 - Send Http GET request");
http.sendGet();
}
// HTTP GET request
private void sendGet() throws Exception {
String url = "https://www.google.com/search?q=flower";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod("GET");
//add request header
con.setRequestProperty("User-Agent", USER_AGENT);
int responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
//print result
System.out.println(response.toString());
}
}
Mais quand je compiler et exécuter ce code de terminal ubuntu, la sortie de ce code ne donne pas le contenu de la page spécifiée par l'URL. Il donne plutôt la sortie suivante
Testing 1 - Send Http GET request
Sending 'GET' request to URL : http://www.google.com/search?q=flower
Response Code : 307
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>307 Temporary Redirect</title></head><body><h1>Temporary Redirect</h1><p>The document has moved <a href="https://ifwb.iitb.ac.in/index.php?add=www.google.com/search">here</a>.</p><hr><address>Apache/2.2.22 (Fedora) Server at www.google.com Port 80</address></body></html>
Ce problème concerne toutes les URL que je spécifie dans le code. De plus, j'ai essayé d'accéder au contenu Web en utilisant le client telnet comme
telnet www.google.com 80 GET/
et donne le même résultat, non seulement pour www.google.com mais pour chaque URL. Je suis un étudiant à IIT Bombay et peut-être qu'il a quelque chose à voir avec https://ifwb.iitb.ac.in. Je veux aussi m'en tenir à java.net et non à apache httpclient. Alors aidez-moi à sortir de ça.