当前位置:  开发笔记 > 编程语言 > 正文

WebRequest是否是与网站交互的正确C#工具?

如何解决《WebRequest是否是与网站交互的正确C#工具?》经验,为你挑选了2个好方法。

我正在用C#编写一个小工具,它需要使用POST和json格式向网站发送数据和从网站接收数据.我以前从未在C#(或任何语言)中做过这样的事情,所以我很难找到一些有用的信息让我开始.

我在C#中找到了一些关于WebRequest类的信息(特别是从这里开始),但在我开始深入研究之前,我想知道这是否适合这项工作.

我发现有很多工具可以将数据转换为json格式,但其他方面并不多,所以任何信息在这里都会非常有用,以防我最终陷入死胡同.



1> Wolfwyrd..:

WebRequest以及更具体的HttpWebRequest类是您想要实现的目标的良好起点.要创建请求,您将使用WebRequest.Create并将创建的请求强制转换为HttpWebRequest以实际使用它.然后,您将创建发布数据并将其发送到流,如:

HttpWebRequest req = (HttpWebRequest)
WebRequest.Create("http://mysite.com/index.php");
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
string postData = "var=value1&var2=value2";
req.ContentLength = postData.Length;

StreamWriter stOut = new
StreamWriter(req.GetRequestStream(),
System.Text.Encoding.ASCII);
stOut.Write(postData);
stOut.Close();

类似地,您可以使用GetResponse方法读取响应,这将允许您读取生成的响应流并执行您需要执行的任何操作.您可以在以下网址找到有关课程的更多信息:

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx



2> Eric Schoono..:

WebClient有时比WebRequest更容易使用.你可能想看看它.

对于JSON反序列化,您将需要查看JavaScriptSerializer类.

WebClient示例:

using (WebClient client = new WebClient ())
{
    //manipulate request headers (optional)
    client.Headers.Add (HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");

    //execute request and read response as string to console
    using (StreamReader reader = new StreamReader(client.OpenRead(targetUri)))
    {
        string s = reader.ReadToEnd ();
        Console.WriteLine (s);
    }
}

标记为wiki,以防有人想要更新代码

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有