35 .net c# webrequest
我正在用C#编写一个小工具,它需要使用POST和json格式向网站发送数据和从网站接收数据.我以前从未在C#(或任何语言)中做过这样的事情,所以我很难找到一些有用的信息让我开始.
我在C#中找到了一些关于WebRequest类的信息(特别是从这里开始),但在我开始深入研究之前,我想知道这是否适合这项工作.
我发现有很多工具可以将数据转换为json格式,但其他方面并不多,所以任何信息在这里都会非常有用,以防我最终陷入死胡同.
Wol*_*yrd 27
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();
Run Code Online (Sandbox Code Playgroud)
类似地,您可以使用GetResponse方法读取响应,这将允许您读取生成的响应流并执行您需要执行的任何操作.您可以在以下网址找到有关课程的更多信息:
http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx
Eri*_*ver 19
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);
}
}
Run Code Online (Sandbox Code Playgroud)
标记为wiki,以防有人想要更新代码