Tôi hiện đang làm việc trên trình duyệt web bằng cách sử dụng java. Tôi đang gửi yêu cầu GET theo cách thủ công bằng cách thiết lập kết nối tcp và sử dụng trình soạn thảo máy in.Gửi yêu cầu GET theo cách thủ công đến một trang web. 302 lỗi chuyển hướng
Tôi có thể kết nối với hầu hết các trang web như yahoo.com hoặc cracked.com và nhận được phản hồi, NHƯNG tôi không thể kết nối với trang web mục tiêu của mình - vinylengine.com. Nó sẽ luôn trả về lỗi 302.
Tôi đã so sánh yêu cầu gửi của mình với trình duyệt của tôi và chúng gần như giống hệt nhau.
tiêu đề của tôi:
GET/HTTP/1.1
Host: www.vinylengine.com
Phản Hồi của Tôi: tiêu đề
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>
của trình duyệt:
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"
Code:
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;
}
}
Tôi đã cố gắng thay đổi tên máy chủ để nakedresource.com, nhưng khi tôi làm điều đó, tôi nhận được mã nguồn trang web cho nakedresource.com và không vinylengine.com
HTTP 302 có nghĩa là chuyển hướng, do đó bạn cần gọi lại URL được chuyển hướng – nidhin
Vì vậy, bạn không làm điều tương tự như trình duyệt, sau đó tự hỏi tại sao kết quả lại khác? –