【已解决】C#中HttpWebRequest支持代理

【背景】

此处是中国,虽然本身网络很快,但是用C#代码访问Amazon网站,结果速度很慢。

所以,想到了, 是否改用goagent代理,速度是否会变快。

试了试,貌似的确快一些。

所以,就打算给现有的,已经实现好的,利用了HttpWebRequest去访问网络的代码中,添加代理的支持。

包括访问google,也还是代理速度要快,要稳定。

 

【折腾过程】

1.参考:

c#中HttpWebRequest使用Proxy实现指定IP的域名请求

去试试:

private WebProxy gProxy = null;

/* set proxy
 * Note:
 * 1. current only support http proxy
 * 2. current only support single proxy
 */
public void setProxy(string proxyIp, int proxyPort)
{
    gProxy = new WebProxy(proxyIp, proxyPort);
}

public HttpWebResponse _getUrlResponse(string url,
                                Dictionary<string, string> headerDict = defHeaderDict,
                                Dictionary<string, string> postDict = defPostDict,
                                int timeout = defTimeout,
                                string postDataStr = defPostDataStr,
                                int readWriteTimeout = defReadWriteTimeout)
{
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    ......

    req.Proxy = gProxy;
    
    ......
}

结果就可以了。

可以使用上代理了。

 

【总结】

C#中,让HttpWebRequest支持代理的话:

对于HttpWebRequest的变量设置对应的proxy属性即可。

proxy变量是System.Net.WebProxy类型的。

代码为:

using System.Net;
WebProxy gProxy = new WebProxy("127.0.0.1", 8087);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Proxy = gProxy;


发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量