zoukankan      html  css  js  c++  java
  • 撷取指定网址中的资料Part1:WebClinet 的用法

    咳~这是这里第一篇PO文,我们先来说说简单点的东西。首先,先来看一下MSDN上对于WebClinet的叙述是什么:

    [提供从URI所识别的资源中,传送与接收资料的常见方法。]

    好的,那我们要怎么去使用这个类(Class)呢?废话有点多,我们来看范例程式码

    1 // declare a object.
    2 WebClient client = new WebClient();
    3 
    4 // Load data into memoryStream. Sample is yahoo stock
    5 MemoryStream ms = new MemoryStream(client.DownloadData(string.Format("http://tw.stock.yahoo.com/q/q?s={0}",companyID)));

    接下来只要把ms转换成你想要的资料格式即可,非常的简单。

    但有些时候,可能会遇到有关于Proxy权限验证的问题。 (何谓Proxy,请查询Wiki)

    所以说我们必须提供Proxy一些验证的参数,让我们写的这只程式可以顺利的通过Proxy权限验证。

    来看范例程式码

     1 WebClient client = new WebClient();
     2 
     3 // Method_1: Get proxy configured with the Internet Explorer settings of the currently impersonated user.
     4 IWebProxy Proxya = System.Net.WebRequest.GetSystemWebProxy();
     5 // 设定可以通过该代理权限的名称,密码,域
     6 Proxya.Credentials = new NetworkCredential(ProxyUserName, ProxyPassword, ProxyDomain);
     7 
     8 // to get default proxy settings
     9 //Proxya.Credentials = CredentialCache.DefaultNetworkCredentials;
    10 
    11 client.Proxy = Proxya;
    12 
    13 MemoryStream ms = new MemoryStream(client.DownloadData(string.Format("http://tw.stock.yahoo.com/q/q?s={0}",companyID)));

    (Line.6)和(Line.8)的程式码是可以互换的。一个是设定代理的权限(Line.6);另一个是去抓电脑本身的预设值(Line.8)。

    在第四行(Line. 4)中。

    IWebProxy Proxya = System.Net.WebRequest.GetSystemWebProxy();

    可以改成

    IWebProxy Proxya = new WebProxy("Proxy_Server_address:port");

    这样会更好,因为这种写法可以去避免掉当工具换到另一台机器跑的时候,抓取到的IE设定不同导致工具Crash。

  • 相关阅读:
    POJ 3258 二分答案
    Prototype 模式示例代码 (C++)
    offsetof 和 container_of
    二进制整数中的“1”
    Binary Tree Traversal Algorithms (二叉树遍历算法)
    A* Pathfinding Algorithm
    Axis­ Aligned 
Rectangles (Google 面试题, 2016网易游戏校招笔试)
    [LeetCode] Burst Ballons
    C++ 继承语义下构造函数中的对象指针
    kill-9和kill-15的区别
  • 原文地址:https://www.cnblogs.com/imagefish/p/2803778.html
Copyright © 2011-2022 走看看