2017-04-04 69 views
0

我堅持發送請求與Akka HTTP singleRequest()。我正在嘗試處理Stripe API,它需要application/x-www-form-urlencoded傳入請求的內容類型。Akka HTTP如何POST內容類型應用程序singleRequest/x-www-form-urlencoded

我試圖使用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要求,你需要使用FromData從包akka.http.scaladsl.model

所以在這裏工作例如:

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`) 
    ) 
相關問題