Is WebRequest The Right C# Tool For Interacting With Websites?我正在用C#语言编写一个小工具,该工具需要使用POST和json格式向/从网站发送和接收数据。 我以前从未用C#(或实际上是任何一种语言)做过类似的事情,所以我一直在努力寻找一些有用的信息来使我入门。 我已经在C#中的WebRequest类上找到了一些信息(特别是从这里开始),但是在我开始研究它之前,我想知道这是否是正确的工具。 我发现有很多工具可以将数据转换为json格式,但是没有太多其他功能,因此,如果我最终陷入困境,那么这里的任何信息都将非常有用。 WebRequest(尤其是HttpWebRequest类)是您要实现的目标的良好起点。要创建请求,您将使用WebRequest.Create并将创建的请求转换为HttpWebRequest以实际使用它。然后,您将创建自己的帖子数据,并将其发送到流中,如下所示:
同样,您可以使用GetResponse方法读回响应,该方法将允许您读取生成的响应流并执行其他需要做的事情。您可以在以下位置找到有关该课程的更多信息: http://msdn.microsoft.com/zh-CN/library/system.net.httpwebrequest.aspx WebClient有时比WebRequest更易于使用。您可能想看看它。 对于JSON反序列化,您将需要查看JavaScriptSerializer类。 WebClient示例:
如果有人要更新代码,则标记为Wiki 当涉及到将数据发布到网站时,System.Net.HttpWebRequest(WebRequest的HTTP特定实现)是一个非常不错的解决方案。它支持SSL,异步请求和许多其他功能,并且在MSDN上有详细记录。 有效负载可以是任何东西:JSON格式的数据或其他任何东西-只要将ContentType属性设置为服务器期望和理解的内容(很可能是application / json,text / json或text / x-json),所有内容都将是精细。
使用来自系统服务的HttpWebRequest时的一个潜在问题:由于它使用IE代理和凭据信息,因此,以LOCALSYSTEM用户(或基本上没有定期交互登录的任何帐户)运行时,默认行为可能会有些奇怪)。将Proxy和Authentication属性设置为 当前评分最高的答案很有帮助,但它不会发送或接收JSON。 这是一个使用JSON进行发送和接收的示例: 如何在Web服务中发布JSON对象 这是最能帮助我解决此问题的StackOverflow问题: 在ASP.net Web服务和ASP.Net Web客户端之间发送和接收JSON时出现问题 这是另一个相关的问题: 用C#进行json调用
要将实例对象转换为json格式的字符串,反之亦然,请尝试Json.NET: 我目前在项目中使用它,它易于学习和使用,并在序列化和自定义类型转换器方面提供了一定的灵活性。它还支持用于查询json输入的LINQ语法。 我已经使用WebRequest与网站进行交互。这是正确的"工具" 我无法评论您问题的JSON方面。 在3.5中有一个内置的jsonserializer。 webrequest是您要找的合适的课程。 一些例子:
|