如何为Web请求指定标头

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为Web请求指定标头相关的知识,希望对你有一定的参考价值。

尝试为http调用设置标头但遇到问题。需要有关Authorization和自定义标头x-api-key的指导。

let url = "http://example.com"
let token = requestToken()

let request = WebRequest.Create(url) :?> HttpWebRequest
request.Method <- "GET"
request.Accept <- "application/json;charset=UTF-8"
request.Headers.Authorization <- sprintf "%s %s" token.token_type token.access_token
request.Headers["x-api-key"] <- "api-key" // custom headers

// or this

request.Headers["Authorization"] <- sprintf "%s %s" token.token_type token.access_token

我得到的错误是

错误FS3217:此表达式不是函数,无法应用。您是否打算通过expr。[index]访问indexer?

答案

您获得的错误消息实际上告诉您问题是什么。在F#中,使用索引器的语法是obj.[idx] - 你需要在对象和方括号之间有一个.。特定情况下的正确语法是:

request.Headers.["x-api-key"] <- "api-key"
request.Headers.["Authorization"] <- sprintf "%s %s" token.token_type token.access_token

以上是关于如何为Web请求指定标头的主要内容,如果未能解决你的问题,请参考以下文章

如何为 HttpClient 请求设置 Content-Type 标头?

如何为路由组中的所有请求设置标头

如何为每个 http 调用中的默认请求标头创建 axios 配置?

PostAsJsonAsync C# - 如何为 POST 请求正确设置标头 - BAD REQUEST 400

Solr Highlighting:如何为同一字段请求多个片段长度?

如何为通用 HTTP 请求的响应文件指定唯一名称?