как сделать запрос OPTIONS с HttpClient - PullRequest
0 голосов
/ 19 апреля 2019

Как отправить запрос OPTIONS с System.Net.Http.HttpClient

открытые методы для HttpClient

  • DeleteAsync
  • GetAsync
  • PostAsync
  • PutAsync
  • также несколько других .....

Я ожидал OptionsAsync

   switch (httpMethod) {
      case HTTP_METHODS.DELETE:
       {
        httpResponseMessage = httpClient.DeleteAsync(uri).Result;
        break;
       }
      case HTTP_METHODS.GET:
       {
        httpResponseMessage = httpClient.GetAsync(uri).Result;
        break;
       }
      case HTTP_METHODS.POST:
       {
        httpResponseMessage = httpClient.PostAsync(uri, httpContent).Result;
        break;
       }
      case HTTP_METHODS.PUT:
       {
        httpResponseMessage = httpClient.PutAsync(uri, httpContent).Result;
        break;
       }
      case HTTP_METHODS.OPTION:
       {
        //not sure what method to call on httpclient here to make Options request
        httpResponseMessage = httpClient.PutAsync(uri, httpContent).Result;
        if (httpResponseMessage.Headers.Contains("X-CSRF-TOKEN")) {
         IEnumerable < string > headerValues = httpResponseMessage.Headers.GetValues("X-CSRF-TOKEN");
         csrfToken = headerValues.FirstOrDefault();
        }
        break;
       } 
     }

1 Ответ

2 голосов
/ 19 апреля 2019

Для таких методов не существует упаковщиков (например, OPTIONS и HEAD), но вы можете использовать SendAsync, как это делают эти оболочки:

var request = new HttpRequestMessage(HttpMethod.Options, "url");
var result = await _httpClient.SendAsync(request);
...