Как задать заголовки для веб-запроса


Пытается установить заголовки для вызова 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: это выражение не является функцией и не может быть применено. Вы намеревались получить доступ к indexervia expr.[индекс] вместо этого?

1 2

1 ответ:

Сообщение об ошибке, которое вы получаете, на самом деле говорит вам, в чем проблема. В F# синтаксис для использования индексатора obj.[idx] - вам нужно иметь . между объектом и квадратной скобкой. Правильный синтаксис в вашем конкретном случае будет следующим:

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