RestSharp с HTTP 2.0 - PullRequest
       13

RestSharp с HTTP 2.0

0 голосов
/ 28 ноября 2018

Я пытаюсь делать запросы (GET / POST), используя RestSharp с HTTP 2.0

С помощью следующего кода генерирует запросы HTTP 1.1.Сервер настроен на поддержку HTTP 2.0.

        var restClient = new RestClient(URL);
        IRestRequest restRequest = new RestRequest(CONTEXT, Method.GET);
        restRequest.AddHeader("Accept", "application/json");
        restRequest.AddHeader("Content-Type", "application/json");
        IRestResponse restResponse = restClient.Execute(restRequest);

Есть мысли о том, как явно установить версию HTTP на 2.0?

1 Ответ

0 голосов
/ 09 апреля 2019

Я знаю, что вопрос старый, но мое решение обычно можно найти.

На самом деле (апрель 2019) RestSharp не поддерживает HTTP / 2.0-запрос.

ЕдинственноеЯ нашел способ использовать стандартный System.Net.Http.HttpRequestMessage для отправки REST-запроса следующим образом:

var http2Handler = new Http2Handler();
using (var httpClient = new HttpClient(http2Handler))
{
    var requestHttp = new HttpRequestMessage {
        RequestUri = new Uri(yourUrl),
        // ...
    };

    var responseHttp = httpClient.SendAsync(requestHttp).Result;
    // ... response elaboration
}

Где Http2Handler просто:

public class Http2Handler : System.Net.Http.WinHttpHandler
{
    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
    {
        request.Version = new Version("2.0");
        return base.SendAsync(request, cancellationToken);
    }
}
...