json - -d 和 -u 参数的含义(和提供方法)是什么?

标签 json scala rest paypal playframework

我正在尝试使用 Scala 中的 Playframework 进行 WS GET 调用以调用 Paypal REST JSON API。我更具体地尝试 get the initial Paypal access token :

curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
   -H "Accept: application/json" \
   -H "Accept-Language: en_US" \
   -u "client_id:secret" \
   -d "grant_type=client_credentials"

我通过以下方式在 Scala 中构建它:

@Inject(ws: WSClient)

val url = config.get[String]("paypal.url.token") // https://api.sandbox.paypal.com/v1/oauth2/token
val httpHeaders = Array(
    "Accept" -> "application/json",
    "Accept-Language" -> "en_US"
)
val username = config.get[String]("paypal.client_id")
val password = config.get[String]("paypal.secret")
val request: WSRequest = ws.url(url).withHttpHeaders(httpHeaders: _*).
    withRequestTimeout(timeout).
    withAuth(username, password, WSAuthScheme.BASIC)
val futureResponse = request.get()
futureResponse.map { response =>
    println(response.json)
}

我在这里假设原始 curl 示例中的 -u 意味着并对应于 withAuth 但我不知道 -d for grant_type=client_credentials 对应?

当我像现在这样运行它时,出现以下错误: {"error":"invalid_token","error_description":"授权 header 没有有效的访问 token "}

还有一些在日志之前: [info] p.s.a.o.a.n.h.i.Unauthorized401Interceptor - 无法处理 401,因为已经执行了身份验证

最佳答案

您可以阅读 curl手册与 man curl .

所以, 1) -u代表--user <username:passsword>

   -u, --user <user:password>
          Specify the user name and password to use for server authentication. Overrides -n, --netrc and --netrc-optional.

          If you simply specify the user name, curl will prompt for a password.

这也转化为 -H "Authorization: <Basic|Bearer> base64_for_username:password"

2) -d代表 --data或 POST 请求的负载。

   -d, --data <data>
          (HTTP) Sends the specified data in a POST request to the HTTP server, in the same way that a browser does when a user has
          filled in an HTML form and presses the submit button. This will cause curl to pass the data to the server using the  con-
          tent-type application/x-www-form-urlencoded.  Compare to -F, --form.

关于json - -d 和 -u 参数的含义(和提供方法)是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57761321/

相关文章:

scala - Heroku Slug 大小为 222 MB/Play Framework 2.1/

scala - 如何在Spark中处理多行输入记录

php - Yii2 AccessControl 在 Rest API 中使用 HTTPBearerAuth 时给出 Forbidden 403

rest - Gin 错误 panic : wildcard route conflicts with existing children

ajax - JIRA Rest API 错误。无法识别的 token 造成了问题

json - 收集资源的响应有效负载主体的建议

ios - 使用 iOS 发送请求 - 使用 304 HTTPCode 快速回答

javascript - 显示 json 文件中的数据

scala - 必须显式运行 akka 多 jvm 测试

javascript - 为每一行发送 AJAX