苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 8825|回复: 9

[求助] 关于代理的问题

[复制链接]
发表于 2013-6-27 15:02:09 | 显示全部楼层 |阅读模式
HttpHelper累的片段
//设置代理服务器
                if (objhttpItem.ProxyIp.Contains(":"))
                {
                    string[] plist = objhttpItem.ProxyIp.Split(':');
                    WebProxy myProxy = new WebProxy(plist[0].Trim(), Convert.ToInt32(plist[1].Trim()));
                    //建议连接
                    myProxy.Credentials = new NetworkCredential(objhttpItem.ProxyUserName, objhttpItem.ProxyPwd);
                    //给当前请求对象
                    request.Proxy = myProxy;
                }
                else
                {
                    WebProxy myProxy = new WebProxy(objhttpItem.ProxyIp, false);
                    //建议连接
                    myProxy.Credentials = new NetworkCredential(objhttpItem.ProxyUserName, objhttpItem.ProxyPwd);
                    //给当前请求对象
                    request.Proxy = myProxy;
                }

其中 myProxy.Credentials = new NetworkCredential(objhttpItem.ProxyUserName, objhttpItem.ProxyPwd);
代理服务器名和密码  是用于在代理服务器验证的吗?我调用NetworkCredential类的无参的构造函数好像不行...


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-6-27 15:12:59 | 显示全部楼层
Httphelper设置代理 的方法在教程里面有写,在生成工具中也有,你发我的内部实现干什么,如果有问题请贴你的代码。
 楼主| 发表于 2013-6-27 15:18:21 | 显示全部楼层
站长苏飞 发表于 2013-6-27 15:12
Httphelper设置代理 的方法在教程里面有写,在生成工具中也有,你发我的内部实现干什么,如果有问题请贴你 ...

就是想让站长给讲讲啊
验证名和密码  是用来验证代理网站的吗
好像登录名和密码一样?
发表于 2013-6-27 15:22:42 | 显示全部楼层
xp19840522 发表于 2013-6-27 15:18
就是想让站长给讲讲啊
验证名和密码  是用来验证代理网站的吗
好像登录名和密码一样?

你先百度一个什么是代理
想使用代理有三部分
一是代理IP(IP+端口),二是代理用户名,三是代理密码
免费的代理一般都是没有用户名和密码的,直接写IP+端口就行了
 楼主| 发表于 2013-6-27 15:43:32 | 显示全部楼层
站长苏飞 发表于 2013-6-27 15:22
你先百度一个什么是代理
想使用代理有三部分
一是代理IP(IP+端口),二是代理用户名,三是代理密码

假如我用的事一个免费的代理  没有名和密码
这个流程对吗
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(PageUrl);
            WebProxy proxy = new WebProxy("60.21.136.22", 8080);
            proxy.Credentials = new NetworkCredential();
            request.Proxy = proxy;
            request.Credentials = CredentialCache.DefaultNetworkCredentials;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream responseStream = response.GetResponseStream();
            if (response.ContentEncoding.ToLower().Contains("gzip"))
                responseStream = new GZipStream(responseStream, CompressionMode.Decompress);
            StreamReader Reader = new StreamReader(responseStream, Encoding.GetEncoding("gb2312"));
            string s = Reader.ReadToEnd();

到了HttpWebResponse response = (HttpWebResponse)request.GetResponse();就无法返回response了,请问是什么情况?
发表于 2013-6-27 15:57:03 | 显示全部楼层
         request.Credentials = CredentialCache.DefaultNetworkCredentials;你设置这个干什么,无法返回你要先确定你的代理是不是可用的,测试方法去下载我的工具上面自带
http://www.sufeinet.com/thread-3690-1-1.html
我帮你测试了一下你的代理 是无效你,你百度什么是代理了吗?不建议直接这样写,建议使用我的Httphelper类来写
 楼主| 发表于 2013-6-27 16:34:01 | 显示全部楼层
如何判断代理是否可用呢  主要是的主框架已经写完了  老大给我添个新功能  非让我挂代理 我只能能在现有基础上改了  我这有个库 都是代理地址  有的能ping通  有的根本Ping不通  
发表于 2013-6-27 16:51:20 | 显示全部楼层
xp19840522 发表于 2013-6-27 16:34
如何判断代理是否可用呢  主要是的主框架已经写完了  老大给我添个新功能  非让我挂代理 我只能能在现有基 ...

只能一个个去验证,能访问的就是可用,不能访问的就是不可用,跟能不能Ping通没有任何关系的
 楼主| 发表于 2013-6-27 17:19:58 | 显示全部楼层
站长苏飞 发表于 2013-6-27 16:51
只能一个个去验证,能访问的就是可用,不能访问的就是不可用,跟能不能Ping通没有任何关系的

站里有没有网络通信这块几个类的详细教学之类的帖子
有的话麻烦站主贴出地址
发表于 2013-6-27 17:26:23 | 显示全部楼层
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-23 18:30

© 2014-2021

快速回复 返回顶部 返回列表