通过 SOCKS-Proxy 的 HTTP 请求被重定向(HTTP 302)C#

HTTP requests through SOCKS-Proxy getting redirected (HTTP 302) C#

大家好,我已经编写了一些代码来连接到 SOCKS5-Proxy 并处理一些 HTTP 请求,问题是我正在执行的每个请求都不断被重定向(HTTP 302 响应)。

我的请求代码:

try
{
    using (var writer = new StreamWriter(stream))
    {
        writer.Write("GET /\r\n HTTP/1.0\r\n Host: www.google.com\r\n\r\n");
        writer.Flush();
        using (var reader = new StreamReader(stream))
        {
            Char[] readBuff = new Char[256];
            int count = reader.Read(readBuff, 0, 256);

            Console.WriteLine("\nThe HTML contents of page the are  : \n\n ");
            while (count > 0)
            {
                String outputData = new String(readBuff, 0, count);
                Console.WriteLine(outputData);
                count = reader.Read(readBuff, 0, 256);
            }
        }
    }
}
catch (Exception e)
{
    MessageBox.Show(e.Message);
}

我尝试的每个网站都得到 302 响应。这个问题是因为我的要求吗?或者可能是由于 SOCKS-Proxy?

如果您需要用于建立 SOCKS 代理的代码 and/or 到主机的 TCP 连接,请询问。但我认为这无关紧要。

谢谢!

您的请求中有一个错误的换行符。 HTTP 版本需要与请求的方法和资源位于同一行。否则 proxy/server 会认为您是旧的 HTTP 0.9 客户端而不是 HTTP 1.0 客户端。

改变这个:

writer.Write("GET /\r\n HTTP/1.0\r\n Host: www.google.com\r\n\r\n");

为此:

writer.Write("GET / HTTP/1.0\r\nHost: www.google.com\r\n\r\n");