Ale*_*ein 2 scala akka akka-http
我坚持使用Akka HTTP发送请求singleRequest()
。我正在尝试处理Stripe API,它需要application/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("test_1@email.com"))).toEntity(),
protocol = HttpProtocols.`HTTP/1.1`)
)
Run Code Online (Sandbox Code Playgroud)
但是在Stripe日志中,我在“解析的请求POST正文”部分中看到以下内容:
(多部分形式:162)
那么问题是如何将内容类型设置为application/x-www-form-urlencoded
?
问题与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" -> "user@email.com")).toEntity(HttpCharsets.`UTF-8`),
protocol = HttpProtocols.`HTTP/1.1`)
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3264 次 |
最近记录: |