Flurl [раскрытие: я являюсь автором] поддерживает строение строк запроса через анонимные объекты (среди прочего):
var url = "http://www.some-api.com".SetQueryParams(new
{
api_key = ConfigurationManager.AppSettings["SomeApiKey"],
max_results = 20,
q = "Don't worry, I'll get encoded!"
});
Необязательный Flurl.Http companion lib позволяет вам выполнять HTTP-звонки с одной и той же безнадежной цепочки вызовов, расширяя ее до полномасштабного клиента REST:
await "https://api.mysite.com"
.AppendPathSegment("person")
.SetQueryParams(new { ap_key = "my-key" })
.WithOAuthBearerToken("MyToken")
.PostJsonAsync(new { first_name = firstName, last_name = lastName });
Полный пакет доступен на NuGet:
PM> Install-Package Flurl.Http
или только автономный построитель URL:
PM> Install-Package Flurl