[C#HttpHelper]关于默认不使用IE代理的重要更新
本次升级主要更新如下
1.主要是解决一下在不设置任何代理的情况下,会自动使用IE的代理。这样会影响程序的正常运行,也感觉群里的朋友反映,具体如下
[C#] 纯文本查看 复制代码 ♂[苏]aspirer(小A)() 14:48:00
既然站长在
♂[苏]aspirer(小A)() 14:48:03
问个事
♂[苏]aspirer(小A)() 14:48:20
HttpHelper的代理模式能不自动去找寻IE的设置吗?
♂[苏]aspirer(小A)() 14:48:37
有时Fiddler抓包后被自动设置了代理
♂[苏]aspirer(小A)() 14:48:57
用自己写的软件时就会发现无法运行
♂[苏]aspirer(小A)() 14:49:32
能让它默认是无代理模式 吗
♂站长苏飞() 14:49:45
能是肯定能的,只是这样的功能,完全可以自己获取IP之后再传给Httphelper,如果增加过多可有可无的功能,类就太臃肿了。
♂[苏]aspirer(小A)() 14:50:09
♂[苏]aspirer(小A)() 14:50:42
那它自动去寻我的IE设置的代理,貌似不合理啊
♂[苏]aspirer(小A)() 14:51:00
IE只是浏览器。
♂[苏]aspirer(小A)() 14:51:21
Httpwebrequest 难道和IE的代理设置有关联?
♂站长苏飞() 14:51:23
不是自动寻找,而是所有Http请求都会默认为IE配置,除非你再次设置
♂站长苏飞() 14:51:30
当然,
♂站长苏飞() 14:51:37
这是微软设计的。
♂[苏]aspirer(小A)() 14:51:49
可否加一句话 比如
♂[苏]aspirer(小A)() 14:51:54
proxy=none;
♂[苏]aspirer(小A)() 14:51:58
表示我不用
♂站长苏飞() 14:52:03
和加不加这个没有关系的。
♂[苏]aspirer(小A)() 14:52:05
别给我瞎找IE设置的代理?
♂站长苏飞() 14:52:48
这不是类的问题是C#语言本身设计时就是这样的Httpwebrequest 设计就是默认使用IE配置
♂[苏]aspirer(小A)() 14:58:51
ProxyIp = ""
♂[苏]aspirer(小A)() 14:58:54
这是什么格式?
♂[苏]aspirer(小A)() 14:58:58
可以带端口吗?
♂站长苏飞() 14:59:00
其实你直接将它设置为Null就行了,
♂站长苏飞() 14:59:03
可以,
♂[苏]aspirer(小A)() 14:59:06
1.2.3.4:8080 ?
♂[渝]版主-Eagle() 14:59:10
带端口的
♂[渝]版主-Eagle() 14:59:12
yes
♂站长苏飞() 14:59:13
是的
♂[渝]版主-Eagle() 14:59:23
你自己可以访问ip138.com
♂[苏]aspirer(小A)() 14:59:24
OK
♂[渝]版主-Eagle() 14:59:28
查看
♂[渝]版主-Eagle() 14:59:37
代理是否成功
♂[苏]aspirer(小A)() 14:59:51
这个会的。
♂[苏]aspirer(小A)() 15:00:07
以前一直没用代理。
♂站长苏飞() 15:00:32
现在回复Svn的Httphelper就行了,直接设置item.WebProxy=null就是不使用IE配置,
♂站长苏飞() 15:00:34
我更新过了,
♂站长苏飞() 15:00:45
以前是把Null过滤了。
♂[苏]aspirer(小A)() 15:03:51
是item.ProxyIP吧
♂站长苏飞() 15:04:38
item.WebProxy
♂站长苏飞() 15:04:55
item.ProxyIP不要设置就行了,如果设置了,就不生效了
♂深海游鱼() 15:05:21
站长 我看你类里面 没有把cookiecontainer 保存 如果有session这种cookie 怎么办
♂站长苏飞() 15:05:22
♂站长苏飞() 15:06:24
字符串和集合只是Cookie的一种显示方式,不影响个数和内容的,
人生如棋() 15:06:35
每次操作一次ADD一下就可以了
人生如棋() 15:06:51
自动老值替换新值的
♂[苏]aspirer(小A)() 15:07:51
意思就是如果没设置 proxyIP,默认就调用 webproxy
♂[苏]aspirer(小A)() 15:08:07
如果仍然不想用IE的,那就是webproxy=null
♂站长苏飞() 15:09:13
是的
大家先来看看修改之后的设置代理部分吧
[C#] 纯文本查看 复制代码 /// <summary>
/// 设置代理
/// </summary>
/// <param name="item">参数对象</param>
private void SetProxy(HttpItem item)
{
if (!string.IsNullOrEmpty(item.ProxyIp))
{
//设置代理服务器
if (item.ProxyIp.Contains(":"))
{
string[] plist = item.ProxyIp.Split(':');
WebProxy myProxy = new WebProxy(plist[0].Trim(), Convert.ToInt32(plist[1].Trim()));
//建议连接
myProxy.Credentials = new NetworkCredential(item.ProxyUserName, item.ProxyPwd);
//给当前请求对象
request.Proxy = myProxy;
}
else
{
WebProxy myProxy = new WebProxy(item.ProxyIp, false);
//建议连接
myProxy.Credentials = new NetworkCredential(item.ProxyUserName, item.ProxyPwd);
//给当前请求对象
request.Proxy = myProxy;
}
}
else
{
request.Proxy = item.WebProxy;
}
}
1.如果要设置代理就这样写
[C#] 纯文本查看 复制代码 HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
URL = "http://www.sufeinet.com",//URL 必需项
ProxyIp = "22.22.22.22:55",//代理服务器ID 可选项 不需要代理 时可以不设置这三个参数
//ProxyPwd = "123456",//代理服务器密码 可选项
//ProxyUserName = "administrator",//代理服务器账户名 可选项
};
HttpResult result = http.GetHtml(item);
string html = result.Html;
string cookie = result.Cookie;
如果不需要应用IE配置的话,就不是什么都不设置了,
而是直接这样设置
[C#] 纯文本查看 复制代码 HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
URL = "http://www.sufeinet.com",//URL 必需项
WebProxy= null,
};
HttpResult result = http.GetHtml(item);
string html = result.Html;
string cookie = result.Cookie;
其实这个参数我默认的就是Null,大家不用设置也可以的。
只要不设置ProxyIp 就行了
|