如何自动打开网站并执行操作

时间:2014-04-02 04:48:34

标签: c#

我有一个网站,其中包含名称,员工ID,工资,来自和迄今为止。基本上,我曾打开该网站并手动输入每个值。

我想自动打开该网站,并使用C#将值分配给受尊重的项目。净。我不知道是否可能。任何人都可以建议我的方法或替代过程吗?

1 个答案:

答案 0 :(得分:0)

您可以使用WebClient System.Net命名空间以编程方式执行网址。 url可以包含可以在加载url期间提取的查询字符串。然后可以将响应解码为字符串,这基本上是一个html,您可以根据自己的方便使用它。

以下是我必须执行该功能的方法。

public static string ReadUrlToString(string url, string method, string postParams, string userName, string password, string domain)
{
    var wc = new WebClient();

    // set the user agent to IE6
    wc.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705;)");

    AssignCredentials(wc, userName, password, domain);

    try
    {
        if (Is.EqualString(method, "POST"))
        {
            // Eg "field1=value1&field2=value2"
            var bret = wc.UploadData(url, "POST", Encoding.UTF8.GetBytes(postParams));

            return Encoding.UTF8.GetString(bret);
        }

        // actually execute the GET request
        return wc.DownloadString(url);
    }
    catch (WebException we)
    {
        // WebException.Status holds useful information
        //throw as needed
    }
    catch (Exception ex)
    {
        // other errors
        //throw as needed
    }
}

AssignCredentials方法如下。

private static void AssignCredentials(WebClient wc, string userName, string password, string domain)
{
    if (Is.NotEmptyString(userName))
    {
        wc.Credentials = Is.EmptyString(domain)
                                ? new NetworkCredential(userName, password)
                                : new NetworkCredential(userName, password, domain);
    }
} 

希望这有帮助。