c# - 如何使用 HttpClient 发出 OPTIONS 请求

标签 c# http dotnet-httpclient

如何使用 System.Net.Http.HttpClient 发送 OPTIONS 请求

HttpClient 的公开方法

  • 删除异步
  • 获取异步
  • 异步后
  • 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;
           } 
         }
    

    最佳答案

    这种方法没有包装器(例如 OPTIONSHEAD ),但您可以像这些包装器一样使用 SendAsync :

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

    关于c# - 如何使用 HttpClient 发出 OPTIONS 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55767269/

    相关文章:

    c# - lock 语句在幕后做了什么?

    c# - 计算堆排序对数组进行排序所需的步骤数

    c# - Mysql - "order by"/Subquery 上的 Entity Framework 性能问题

    php - file_get_contents() 是否使用缓存?

    Java - 套接字和循环

    asp.net-core - 在.NET Core 2.1.0-rc1-final中使用System.Net.Http.SocketsHttpHandler

    c# - 无法在单元测试中访问已处置的对象

    c# HttpClient 只是停止而没有任何指示为什么

    c# - 如何存储/处理 C# 中其他类可用的数据

    python - 将 python 线程结果合并到一个列表中