在使用RESTful API时,您何时建议使用RestSharp和何时使用HttpClient?

时间:2014-11-18 14:18:11

标签: .net restsharp dotnet-httpclient

我一直在寻找这个答案,但没有成功。

我一直使用RestSharp并且发现它非常整洁,但后来意识到微软提供的是HttpClient,它看起来乍一看它的功能相同。

(我也听说过ServiceStack,而且大多数人似乎比其他选择更喜欢它,但现在支付那么多不是一个选择 - 也不是使用旧版本。)

这只是一个个人喜好的问题,或者是否确实存在使用其中一个或另一个的利弊 - 或者,有一些具体的情况,其中一个可能比另一个更合适?

提前致谢!

1 个答案:

答案 0 :(得分:18)

这主要取决于你猜测的个人偏好。几点:

  • RestSharp在HttpClient之前出现多年,在功能和易用性方面远远优于微软当时提出的任何内容。

  • HttpClient具有严格的异步(如async / await)API; RestSharp支持同步和异步调用。但是,除非您停留在较旧的平台上和/或支持遗留代码,否则同步进行HTTP调用的理由不大。 (不要让线程等待可能长时间运行的I / O!)

  • RestSharp涵盖了HttpClient本身没有的很多领域,最明显的是反应的反序列化。

在切换到HttpClient之前我使用了RestSharp几年(我想要async / await支持,据我所知,RestSharp当时并没有支持它,虽然它现在支持它),最终我写了并发布了我的拥有一个小型库Flurl.Http,它使用一些流畅的HTTP /反序列化方法扩展了我的URL构建器,这些方法只是围绕HttpClient和Json.NET的瘦包装器。