【问题标题】:scalaj Http header not being recognizedscalaj Http标头未被识别
【发布时间】:2019-08-07 13:49:48
【问题描述】:

我正在尝试使用 scalaj 调用 API。我需要一个授权作为随请求传递的承载令牌类型。当我尝试使用Postman 和 curl 来执行这个 API 时,我能够得到一个有效的响应。

curl -H "Authorization: Bearer <some auth token>" -H 'Accept: application/json' <some url>

但是当我尝试使用 scalaj 库运行它时,它无法运行,给了我401: Not Authorized。这是我要运行的代码:

val response = Http("https://<my url>")
            .headers(Seq("Authorization" -> ("Bearer " + authToken)))
            .asString
            .body

(PS.authToken 已定义且有效,毫无疑问)

我为什么要使用 Bearer Token 是因为它在文档中提到:

每个请求都必须包含 Authorization HTTP 标头,其值为 Bearer [access_token]。可以使用 /auth/tokens 端点获取访问令牌,产品 XYZ 使用它来识别您的身份。产品 XYZ 使用 TLS v1.2 协议协商 SSL 连接。

【问题讨论】:

  • 相同的错误响应。没用
  • 请问你是怎么解决这个问题的?

标签: scala scalaj-http


【解决方案1】:

尝试添加 Accept 标头:

val response = Http("https://<my url>")
        .headers(Seq("Authorization" -> ("Bearer " + authToken), "Accept" -> "application/json"))
        .asString
        .body

也许 API 需要特定的标头。

【讨论】:

    猜你喜欢
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    相关资源
    最近更新 更多