requestHeaders в http-роводит-1.9.4
Я пытаюсь создать http-запрос с пользовательским заголовком (с использованием http-итог-1.9.4):
req <- parse "https://some_url"
let request = req { requestHeaders = [customHeader] }
И я не понимаю, что должно быть customHeader? я пытался
import Network.HTTP.Headers
let custom_header = mkHeader (HdrCustom "Some-Header") "Some-Value"
но произошла ошибка
Couldn't match expected type `Network.HTTP.Types.Header.Header'
with actual type `Header'
In the expression: custom_header
In the `requestHeaders' field of a record
In the expression: req {requestHeaders = [custom_header]}
Также я попробовал только
let custom_header = ("Some-Header", "Some-Value")
и ошибка
Couldn't match expected type `Network.HTTP.Types.Header.HeaderName'
with actual type `[Char]'
In the expression: "User-Agent"
In the expression: ("User-Agent", "erthalion")
In the `requestHeaders' field of a record
Итак, кто-нибудь знает, какой должен быть customHeader?
1 ответ
Решение
http-проводник вообще не использует пакет HTTP, это два совершенно разных подхода. Если вы посмотрите в документации по http-типам, вы увидите, что Header
это просто кортеж из имени и значения заголовка.
Единственная причина, по которой ваш custom_header
не работает, потому что вам нужно включить OverloadedStrings
расширение языка.