Attualmente sto lavorando su un web scraper usando java. Sto inviando manualmente la richiesta GET impostando una connessione TCP e utilizzando printerwriter.Inviando manualmente la richiesta GET a un sito Web. 302 errore di reindirizzamento
Sono in grado di connettersi alla maggior parte dei siti Web come yahoo.com o cracked.com e ricevere una risposta, MA non riesco a collegarmi al mio sito Web di destinazione: vinylengine.com. Resterà sempre un errore 302.
Ho confrontato la mia richiesta di invio con il mio browser e sono quasi identici.
mia intestazione:
GET/HTTP/1.1
Host: www.vinylengine.com
La mia risposta: intestazione
HTTP/1.1 302 Found
Date: Thu, 06 Jun 2013 19:27:00 GMT
Server: Apache
Location: http://www.nakedresource.com/
Cache-Control: max-age=1209600
Expires: Thu, 20 Jun 2013 19:27:00 GMT
Content-Length: 213
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://www.nakedresource.com/">here</a>.</p>
</body></html>
del Browser:
GET http://www.vinylengine.com/ HTTP/1.1
Host: www.vinylengine.com
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: __utma=72407316.18415374.1370488314.1370497873.1370543389.3; __utmz=72407316.1370488314.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); SESSaf8d12283bdbdc5f5bbfb2aef054db6d=1f0676e5cab0ba2c5a80e76ea0bd6f75; __utmc=72407316; has_js=1; __utmb=72407316
Connection: keep-alive
If-Modified-Since: Thu, 06 Jun 2013 18:02:53 GMT
If-None-Match: "2186d59ac297e0f1a43433fa61e8a94b"
Codice:
public void sendRequest(String extensionString, String urlString)
{
try
{
//BufferedReader inFromServer;
//PrintWriter outToServer;
//These 2 are initalized elsewhere
outToServer.println("GET " + extensionString + " HTTP/1.1");
outToServer.println("Host: " + urlString);
outToServer.println("");
outToServer.flush();
String temp;
while((temp=inFromServer.readLine()) != null)
{
System.out.println(temp);
}
return;
}
catch (Exception e)
{
System.out.printf("sendRequest failed: %s",e);
return;
}
}
Ho provato a cambiare il nome host da nakedresource.com, ma quando lo faccio, io ottenere il sorgente della pagina per nakedresource.com e non vinylengine.com
HTTP 302 significa reindirizzamento quindi è necessario chiamare nuovamente l'URL reindirizzato – nidhin
Quindi, non si sta facendo la stessa cosa del browser, quindi ci si chiede perché i risultati sono diversi? –