Java 套接字编程:找到302
我正在尝试使用套接字连接到www.google.com,但结果是: 找到HTTP/1.0 302 地点: 缓存控制:专用 内容类型:text/html;字符集=UTF-8 以下是我的Java测试代码:Java 套接字编程:找到302,java,sockets,Java,Sockets,我正在尝试使用套接字连接到www.google.com,但结果是: 找到HTTP/1.0 302 地点: 缓存控制:专用 内容类型:text/html;字符集=UTF-8 以下是我的Java测试代码: Socket sock = new Socket(); try { sock.connect(new InetSocketAddress("www.google.com", 80)); InputStream in = sock.getInput
Socket sock = new Socket();
try {
sock.connect(new InetSocketAddress("www.google.com", 80));
InputStream in = sock.getInputStream();
OutputStream out = sock.getOutputStream();
out.write(new String("GET /\r\n").getBytes());
byte[] readBuffer = new byte[4096];
while(true) {
int readSize = in.read(readBuffer);
if(readSize < 1) break;
System.out.println(new String(readBuffer, 0, readSize));
}
sock.close();
} catch(Exception e) {
}
这个怎么了?顺便说一句,我需要实现这一点只使用套接字。tnx当你在浏览器中访问google.com时,它是否会重定向到类似google.ca的内容 我这么说是因为这意味着google.com会被重定向。www.google.com会根据您的IP位置重定向您。在菲律宾,您将被重定向到www.google.com.ph。请尝试直接请求该域
Socket sock = new Socket();
try {
sock.connect(new InetSocketAddress("www.google.com.ph", 80));
InputStream in = sock.getInputStream();
OutputStream out = sock.getOutputStream();
out.write(new String("GET / HTTP/1.1\r\nHost: www.google.com.ph\r\n\r\n").getBytes());
byte[] readBuffer = new byte[4096];
while(true) {
int readSize = in.read(readBuffer);
if(readSize < 1) break;
System.out.println(new String(readBuffer, 0, readSize));
}
sock.close();
} catch(Exception e) {
e.printStackTrace();
}
在本例中,您需要指定HTTP版本1.1以及该版本所需的主机头字段
您的请求没有指定版本,所以它使用1.0。没有问题,您想实现什么?为什么它会说302找到了?这是我正在做的一个项目的测试,我必须在网页上显示一些值,并将其与我的项目集成。302是用于重定向的HTTP代码。这不是一个错误,您只需要让程序遵循重定向。在响应的末尾有这样的内容:302移动了文档,但当我连接到此文件时,我的程序在没有结果响应的情况下终止了。我显示了异常消息,它是unknownHostExceptionYes,我在Phil中。但仍然是相同的结果..302未找到,而且当我使用浏览器时,它不会将我重定向到google.com.ph添加http://?它不会重定向您,可能是因为您的浏览器中有cookies。是的,已经添加了,但我得到了java.net.UnknownHostException:http://`www.google.comPlease查看我的答案,我做了解释:@鲁埃尔:这不是一个完美的答案,试试看http://stackoverflow.com/questions/10329779/httpresponse-code-302