用于 C# 应用程序的 HttpClient
Posted
技术标签:
【中文标题】用于 C# 应用程序的 HttpClient【英文标题】:HttpClient for C# application 【发布时间】:2012-02-22 14:37:50 【问题描述】:刚开始使用 ASP.NET MVC4 Web API 项目模板为我的 Web 应用程序创建 API。 http://www.asp.net/mvc/mvc4
到目前为止,API 没有任何问题,但我正准备编写一个小型 C# 应用程序来测试 API。
我能找到的几乎所有示例都使用了一个名为 HttpClient 的类。
在哪里可以找到 HttpClient 以及如何安装它?
【问题讨论】:
【参考方案1】:而不是使用构建在 .NET 框架的 HttpClient 类中,这样在处理与预期不同的状态代码时会出现很多问题。我建议使用名为 RestSharp 的库。
它已成为首选的 .NET Http/Rest 客户端,您可以在此处获取:http://restsharp.org/
这是一个非常强大的库,非常适合做你想做的事。
【讨论】:
好的,感谢您的建议,会检查一下。我喜欢 HttpClient 的是简单的 Get、Post、Delete 语法。 RestSharp 是为访问 WebAPI 而构建的,因此请放心处理 Get、Put、Delete、Post 等非常容易。另外,这对我来说是一个巨大的好处,它可以处理序列化/反序列化。这确实将开发工作减少到最低限度:github.com/restsharp/RestSharp/wiki/Deserialization 出于好奇,您能否链接到任何显示 .net 4.5 中 httpclient 的状态码问题的地方? 这是 .NET 4.5 中的一个全新的 HttpClient(尽管它仍然是 beta 版),它现在处理 WebApi 的效果要好得多,但是 RestSharp 已被证明是一个非常有效的编写 WebApi 客户端的库,所以这是我现在的建议【参考方案2】:在nuget上,搜索HttpClient
http://nuget.org/packages/System.Net.Http
【讨论】:
【参考方案3】:按照here 的描述使用WebRequest
// Create a new 'Uri' object with the specified string.
Uri myUri =new Uri("http://www.contoso.com");
// Create a new request to the above mentioned URL.
WebRequest myWebRequest= WebRequest.Create(myUri);
// Assign the response object of 'WebRequest' to a 'WebResponse' variable.
WebResponse myWebResponse= myWebRequest.GetResponse();
如果它是 REST 接口,请使用 RestSharp,但首先需要 XSD。
【讨论】:
【参考方案4】:如果您的代码中没有该类,那么您可以从 NuGet 包中下载它,如文章中所述:
http://code.msdn.microsoft.com/Introduction-to-HttpClient-4a2d9cee
或者你可以尝试在命名空间中找到它:System.Net.Http
还有一个例子可以帮助你入门!
【讨论】:
以上是关于用于 C# 应用程序的 HttpClient的主要内容,如果未能解决你的问题,请参考以下文章
C# HttpClient.SendAsync 在测试某些 URL 时抛出“发送请求时发生错误”异常
C# HttpClient使用和注意事项,.NET Framework连接池并发限制
C#关于HttpClient的应用:获取IP所在的地理位置信息
使用 C# HttpClient API 和 postman 测试的区别?客户端调用适用于邮递员,但不适用于 C# httpClient getAsync