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 расширение языка.

Другие вопросы по тегам