我在java中編寫了一個程序來檢查瀏覽器發送給http服務器的內容。 程序注意到以下文本(我們將其命名爲TEXT_BROWSER
)無法獲取服務器發送給客戶端的數據在java中
GET/HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.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
Connection: keep-alive
現在我做別的程序發送"TEXT_BROWSER"
的任何網站(谷歌,我的路由器(192.168.1.1)) ,但我沒有迴應(沒有來自服務器的文本) 我想知道我的程序中有什麼錯誤。
我的Java程序
//1streqbybrowser.txt contains TEXT_BROWSER<br/>
import java.net.*;
import java.io.*;
class TCPClient
{
public static void main(String argv[]) throws Exception
{
String sentence;
File f=new File("1streqbybrowser.txt");
FileReader fr=new FileReader(f);
BufferedReader br=new BufferedReader(fr);
Socket clientSocket = new Socket("192.168.1.1", 80);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
while((sentence = br.readLine())!=null)
outToServer.writeBytes(sentence+"\n");
System.out.println("Sending finished");
while((sentence = inFromServer.readLine())!=null)
System.out.println(sentence);
clientSocket.close();
}
}
編輯
我改變TEXT_BROWSER的2號線從Host: localhost
到Host: 192.168.1.10
發送給我的路由器(192.168.1.1),仍然沒有得到任何迴應它
再次編輯
我做了如上所述的更改@andremoniy但只有TEXT_BROWSER的AST線被髮送到服務器並接收到的東西,第二循環還沒有結束
>GET/HTTP/1.1
< HTTP/1.1 400 Bad Request
< Content-Length: 0
< Server: RomPager/4.07 UPnP/1.0
< EXT:
<
我注意到,內環從來沒有在這裏結束。
現在可能是什麼原因?
可能重複:http://stackoverflow.com/questions/9959573/simple-java-http-client-no-server-response – Andremoniy