Używam Akka Http 2.4.1 do wysyłania żądania https do api aplikacji Twitter.Jak dołączyć aplikację/x-www-form-urlencoded HttpHeader do Akka-http 2.4.1?
Zgodnie z ich documentation, potrzebuję dwóch nagłówków http. Mianowicie Autoryzacja i ContentType.
Cytując swoje dokumenty:
Wniosek musi zawierać nagłówek Content-Type z wartością application/x-www-form-urlencoded; charset = UTF-8.
Oto mój kod:
val authorization = Authorization(BasicHttpCredentials(key, secret))
/*
This header is removed from the request with the following explanation!
"Explicitly set HTTP header 'Content-Type: application/x-www-form-urlencoded;' is ignored, illegal RawHeader"
*/
val contentType = RawHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8")
Http().singleRequest(
HttpRequest(
uri = Uri("https://api.twitter.com/oauth2/token"),
method = HttpMethods.POST,
headers = List(authorization, contentType),
entity = HttpEntity(`text/plain(UTF-8)`, "grant_type=client_credentials"),
protocol = HttpProtocols.`HTTP/1.1`))
Jak mogę zawierać nagłówek o wartości application/x-www-form-urlencoded;charset=UTF-8
wykorzystaniem Akka-http 2.4.1 Content-Type
?
Content-Type zostanie ustawiona automatycznie w oparciu o typ jednostki uwzględniony w żądaniu. W twoim przypadku ustawiasz typ zawartości encji http na "text/plain (UTF-8)". – cmbaxter
Dzięki za dodatkowe wyjaśnienie. Pomocny! – rodoherty1