2017-04-04 3 views
0

私はAkka HTTP singleRequest()で送信リクエストに固執しました。私はStripe APIを扱おうとしており、着信要求のコンテンツタイプはapplication/x-www-form-urlencodedである必要があります。Akka HTTP-Content-Type application/x-www-form-urlencodedを使用してsingleRequestをPOSTする方法

私は、HTTPリクエストの次の構造を使用しようとしました:

val authorization = Authorization(OAuth2BearerToken("some_token")) 

Http().singleRequest(HttpRequest(
     uri = Uri("https://api.stripe.com/v1/customers"), 
     method = HttpMethods.POST, 
     headers = List(authorization), 
     entity = FormData(Map("email" -> HttpEntity("[email protected]"))).toEntity(), 
     protocol = HttpProtocols.`HTTP/1.1`) 
    ) 

しかし、私が解析されたリクエストPOSTボディセクションに以下を参照してくださいストライプログに:

(マルチパートフォーム:162)

コンテンツタイプをapplication/x-www-form-urlencodedに設定する方法はどうですか?

答えて

3

問題はFormDataタイプに関連していました。 application/x-www-form-urlencoded要求を実行するためには、パッケージakka.http.scaladsl.model

からFromDataを使用する必要があるので、ここで作業例です:

Http().singleRequest(HttpRequest(
     uri = Uri("https://api.stripe.com/v1/customers"), 
     method = HttpMethods.POST, 
     headers = List(authorization), 
     entity = akka.http.scaladsl.model.FormData(Map("email" -> "[email protected]")).toEntity(HttpCharsets.`UTF-8`), 
     protocol = HttpProtocols.`HTTP/1.1`) 
    ) 
関連する問題