zoukankan      html  css  js  c++  java
  • C#用HttpWebRequest通过代理服务器验证后抓取网页内容 。。。。。

    string urlStr = "http://www.domain.com/";                            //設定要獲取的地址
    HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(urlStr);    //建立HttpWebRequest對象
    hwr.Timeout = 60000;                                                //定義服務器超時時間
    WebProxy proxy = new WebProxy();                                    //定義一個網關對象
    proxy.Address = new Uri("http://proxy.domain.com:3128/");            //網關服務器:端口
    proxy.Credentials = new NetworkCredential("f3210316", "6978233");    //用戶名,密碼
    hwr.UseDefaultCredentials = true;                                    //啟用網關認証
    hwr.Proxy = proxy;                                                    //設置網關
    HttpWebResponse hwrs = (HttpWebResponse)hwr.GetResponse();            //取得回應
    Stream s = hwrs.GetResponseStream();                                //得到回應的流對象
    StreamReader sr = new StreamReader(s, Encoding.UTF8);                //以UTF-8編碼讀取流
    StringBuilder content = new StringBuilder();                        //
    while (sr.Peek() != -1)                                                //每次讀取一行,直到
    {                                                                    //下一個字節沒有內容
        content.Append(sr.ReadLine()+"\r\n");                            //返回為止
    }                                                                    //
    return content.ToString() ;  

    /******************评论**************/

    //创建一个HTTP请求
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://某家网站的验证码服务器/getimage?0.4283556984309326");
    //设置一个代理
    WebProxy myproxy = new WebProxy("202.101.6.85",8080);
    req.Proxy = myproxy;
    //获取代理服务器的回应
    HttpWebResponse res = null;
    try
    {
    res = (HttpWebResponse)req.GetResponse();
    }
    catch
    {
    MessageBox.Show("无法连接代理!");
    return;
    }
    //判断HTTP响应状态
    if(res.StatusCode != HttpStatusCode.OK)
    {
    MessageBox.Show("访问失败!");
    res.Close();
    return;
    }
    //获取应答流
    System.IO.Stream stream = res.GetResponseStream();
    //直接加载到图片(可以直接显示到图片控件)
    System.Drawing.Bitmap bp = new Bitmap(stream);
    //关闭应答流和服务器的应答
    stream.Close();
    res.Close();
    //输出所有的Header(当然包括服务器输出的Cookie)
    for(int ii=0;ii<res.Headers.Count;ii++)
    {
    MessageBox.Show(res.Headers.GetKey(ii)+":"+res.Headers[ii]);
    }

  • 相关阅读:
    在Centos 7下编译openwrt+njit-client
    开博随笔
    Chapter 6. Statements
    Chapter 4. Arrays and Pointers
    Chapter 3. Library Types
    Chapter 2.  Variables and Basic Types
    关于stm32不常用的中断,如何添加, 比如timer10 timer11等
    keil 报错 expected an identifier
    案例分析 串口的地不要接到电源上 会烧掉
    案例分析 CAN OPEN 调试记录 进度
  • 原文地址:https://www.cnblogs.com/liufei88866/p/1279322.html
Copyright © 2011-2022 走看看