HttpWebRequest无法通过代理连接?

时间:2013-12-02 20:04:18

标签: c# .net proxy httpwebrequest

我正在尝试根据我读过的所有内容实现一些简单的操作,但这对我来说不起作用:通过代理发送任何请求。

请参阅下面的代码;只要注释掉2行,它就可以工作。一旦我把它们放回去并尝试使用任何代理,请求不断超时抛出“无法连接到远程服务器”WebException,内部异常消息“连接尝试失败,因为连接方在一段时间后没有正确响应时间或建立的连接失败,因为连接的主机无法响应xxx.xxx.xxx.xxx:zzzz“。

http://www.ip-adress.com/Proxy_Checker/用于获取测试代理列表。

var request = (HttpWebRequest) WebRequest.Create("http://google.com/");
//var myproxy = new WebProxy("http://xxx.xxx.xxx.xxx:zzzz", false);
//request.Proxy = myproxy;
request.Method = "GET";
var response = (HttpWebResponse) request.GetResponse();

我显然遗漏了一些东西,而且我发现的所有类似问题都有更复杂的问题,或者没有得到答案。

感谢。

1 个答案:

答案 0 :(得分:3)

Uri address = new Uri("http://google.com/");               
// Create the web request 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);

// Set type to POST
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";

request.Proxy = new WebProxy("ProxyIP", "Port");
request.Proxy.Credentials = new NetworkCredential("ProxyUsername", "ProxyPassword");

// Write data  
using (Stream postStream = request.GetRequestStream())
{
    postStream.Write(byteData, 0, byteData.Length);
}

using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
    StreamReader streamReader = new StreamReader(response.GetResponseStream());
    string strReaderXML = streamReader.ReadToEnd();
}