如何为Web请求指定标头

时间:2018-03-15 01:13:30

标签: f# http-headers http-get request-headers

尝试为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?

1 个答案:

答案 0 :(得分:4)

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

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