Java 套接字编程:找到302

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

我正在尝试使用套接字连接到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.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