用于 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的应用:融云IM集成

C# HttpClient.SendAsync 在测试某些 URL 时抛出“发送请求时发生错误”异常

C#关于HttpClient的应用:极光推送IM集成

C# HttpClient使用和注意事项,.NET Framework连接池并发限制

C#关于HttpClient的应用:获取IP所在的地理位置信息

使用 C# HttpClient API 和 postman 测试的区别?客户端调用适用于邮递员,但不适用于 C# httpClient getAsync