2014-11-18 2 views
7

Я искал этот ответ в течение некоторого времени, но не имел успеха.Когда вы используете API RESTful, когда вы рекомендуете использовать RestSharp и когда HttpClient?

Я всегда пользовался RestSharp, и я нахожу его довольно опрятным, но потом понял, что есть HttpClient, предоставленный Microsoft, и на первый взгляд он похож на ту же функциональность.

(Я также слышал о ServiceStack, и большинство людей предпочитают его по сравнению с остальными альтернативами, но платить то, что сейчас уже не вариант, и не использовать более старую версию).

Это просто вопрос личной симпатии или существуют ли какие-либо плюсы и минусы использования того или другого - или, может быть, существуют конкретные сценарии, в которых один из них может соответствовать лучше других?

Заранее благодарен!

ответ

8

В основном это зависит от личных предпочтений, как вы догадались. Пар точки:

  • RestSharp вышел года до HttpClient и намного превосходит по функциональности и простоте использования, чем что-либо Microsoft потушить в то время.

  • HttpClient имеет строго асинхронный (как в async/await) API; RestSharp поддерживает как синхронные, так и асинхронные вызовы. Но если вы не застряли на более старой платформе и/или поддерживаете устаревший код, есть небольшая причина для синхронного вызова HTTP. (Не связывайте нити, ожидающие потенциально долговременного ввода-вывода!)

  • RestSharp покрывает большую территорию, что HttpClient сам по себе не имеет, в особенности десериализации ответов.

Я использовал RestSharp в течение нескольких лет перед переключением на HttpClient (я хотел асинхронную/ОЖИДАНИЕ поддержки, и мой RestSharp знания не поддержал его в то время, хотя это происходит сейчас), и в конце концов я написал и выпустила мою собственную небольшую библиотеку, Flurl.Http, которая расширяет мой построитель URL-адресов с некоторыми свободно используемыми методами HTTP/десериализации, которые представляют собой немного более тонкие обертки вокруг HttpClient и Json.NET.

Смежные вопросы