C# 使用代理时HttpRequest POST方法超时

C# 使用代理时HttpRequest POST方法超时,c#,post,proxy,timeout,httprequest,C#,Post,Proxy,Timeout,Httprequest,以下是我的代码: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Timeout = timeout; request.ReadWriteTimeout = timeout; request.Proxy = new WebProxy("http://" + proxyUsed + "/", true); request.UserAgent = "Mozilla/5.0 (Windows NT 6.1

以下是我的代码:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = timeout;
request.ReadWriteTimeout = timeout;
request.Proxy = new WebProxy("http://" + proxyUsed + "/", true);
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7";
request.CookieContainer = new CookieContainer();
request.AllowAutoRedirect = true;

ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "";

foreach (string[] p in parameter)
{
    if (postData != "")
        postData += "&";
    postData += string.Format("{0}={1}", p[0], p[1]);
}
byte[] data = encoding.GetBytes(postData);

request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;

using (Stream newStream = request.GetRequestStream())
{
    newStream.Write(data, 0, data.Length);
    newStream.Close();
}

using (WebResponse myResponse = request.GetResponse())
{
    using (StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8))
    {
        result = sr.ReadToEnd();
        httpLink = myResponse.ResponseUri.AbsoluteUri;
        sr.Close();
    }
    myResponse.Close();
}
我遇到了一个问题,当对网页发出POST http请求时。当我使用直接连接时,它工作良好。但如果我使用代理,它会抛出一个超时异常。但是,如果我将postData设置为空,即使使用代理,它也可以正常工作。 最可能的原因是什么?
谢谢。

没有太多的信息,您可以访问代理服务器日志吗

如果您检查返回变量,是否会出现405错误?这表明代理不支持后期处理


在调试方面,我要做的是成为你的代理(或者透明地使用它),然后你可以查看进出你的盒子的流量,并分析数据,看看请求/响应中是否有任何异常

我相信代理服务器支持后期处理,因为它可以通过POST成功地从其他网站获得响应。我认为设置fiddler是您最好的选择,这样您就可以看到传入/传出的数据响应。啊..我不知道如何将fiddler设置为VS程序,我 已尝试只关注程序或所有进程,但我没有看到任何内容。请安装fiddler,将fiddler端口设置为8888,在fiddler中,将转发代理设置为外部代理,并将代码代理指向localhost:8888。抱歉,如何在fiddler中设置转发代理?这就是代码oSession.oRequest[“代理授权”]=“xxx.xxx.xxx.xxx:xx”;?我试过了,但似乎不是这样