我想在winform中调用一个网站的查询功能进行数据的批查询,网站要求输入账号和密码和验证码,请高手给我个思路,感激不尽。

解决方案 »

  1.   

    给你看个MSDN上的代码,使用WebRequest类。using System;
    using System.IO;
    using System.Net;
    using System.Text;namespace Examples.System.Net
    {
        public class WebRequestGetExample
        {
            public static void Main ()
            {
                // 这里填地址
                WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html");
                // 这里是你说的用户名的密码:请注意,这是指那种弹出形式的并非在网页上输入的那种
                request.Credentials = CredentialCache.DefaultCredentials;
                // 返回响应。
                HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
                // 输出状态描述,大体是表示返回的响应是否正确
                Console.WriteLine (response.StatusDescription);
                // 取得响应的数据输出流
                Stream dataStream = response.GetResponseStream ();
                // 打开输出流
                StreamReader reader = new StreamReader (dataStream);
                // 这里你可以用正则表达多来分析出你要的数据。因为响应是HTML格式的,包含很多你不需要的数据。
                string responseFromServer = reader.ReadToEnd ();
                // 显示你要的数据
                Console.WriteLine (responseFromServer);
                // 关闭所使用的资源
                reader.Close ();
                dataStream.Close ();
                response.Close ();
            }
        }
    }
      

  2.   

    注意看注释,我修改了原MSDN上的英文注释,这样看上去很清楚一些。
    另外注意你说的
    网站要求输入账号和密码和验证码
    这个功能使用上述代码不一定能解决,要看你的网站的认证方式。如果是一访问地址就跳出一个对话框的,比如:你访问路由器之类的时候跳出来的那种,就可以使用这种方式提供用户名和密码。否则,你必须在URL中带上你的用户名和密码进行访问。这要根据你的网站的具体情况而分析。
      

  3.   

    也可以使用WebBrowser,然后通过WebBrowser调用页面的js方法设置表单信息和提交表单。
      

  4.   

    可以用一些工具看一下你登录时POST的信息看看。
    至于验证码一般都是图片,你可以得到这个图片的地址并显示在WINFORM上,但却无法得到这个验证码的内容。