当前位置: 首页 > 知识库问答 >
问题:

如何在改装中读取自定义标头响应(json对象)

公良渝
2023-03-14

我有一个返回null正文但在标头中带有访问令牌的授权api。我能够读取okhttp3.Headers对象,也可以使用

Headers headers = response.headers(); // response object of type Response<T>
Set<String> headerNames = headers.names();

但是在代码中,headers对象不显示作为响应返回的自定义头(access_token)。然而,在postman中,我可以看到如下所示的自定义标题:

access_token -> { "Token":"adklasldalksdalkdask",
"Provider":"ABC" } 

我正在使用拦截器获取报头,如图所示:

    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS);
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);

有人可以建议如何在身份验证响应中将访问令牌作为自定义标头的一部分读取吗?

共有1个答案

蔺翰音
2023-03-14

首先打印整个响应、正文、代码、消息、标头(通过日志记录或其他方式),并尝试从那里找到线索。

我建议您阅读API文档并查看它要求的请求类型。

使用Postman来检查以下哪个正在工作:1 . form-data 2 . x-www-form-Urlencoded 3 . raw 4 . binary

然后相应地在接口中的方法声明中设置注释。

在我的例子中,它采用x-www-form-Urlencoded,所以我不得不使用

@FormUrlEncoded@Headers(“内容类型:application/x-www-form-urlencodeded”)

在方法声明中。

 类似资料:
  • 我正在使用。 下面是获取响应Header的代码部分。 它只给出了默认的标题详细信息。我无法获取在响应中发送的自定义标题。我能够在邮递员工具中看到自定义标题。

  • 问题内容: 我正在使用RestTemplate.postForObject将信息发布到Web服务。除了结果字符串,我还需要响应头中的信息。有什么办法可以做到这一点? 问题答案: 好吧,我终于明白了。交换方法正是我所需要的。它返回包含完整标头的HttpEntity。

  • 问题内容: 我正在努力实现以下目标。 从Request中读取自定义标头及其值: 现在,在响应时,我想在HTTP响应中返回相同的标头对。 我正在使用JAX-RS Web服务的Jersey 2.0实现。 当我发送请求URL时,也会传递请求标头(目前,虽然是Firefox插件-对其进行硬编码)。 收到对该URL的请求后,将调用以下方法: 我该如何实现?任何指针都很棒! 问题答案: 只需注入a 作为方法参

  • 我正在尝试从Laravel中的请求访问自定义标头。标题名为“从访问_”。列出Laravel中的所有标题,只会给出“标准标题”,但我设置的标题不在列表中。在“浏览器网络”选项卡中,我可以看到标头已发送。所以我想知道如何从Laravel内部访问它。 我使用Angular2使用默认的超文本传输协议服务发出请求。

  • 如何从改造和存储到java类并访问某个地方来读取此响应??

  • 基于我之前的问题,我现在需要在响应中添加一个标题。 根据留档,我可以简单地将标头和另一个属性添加到对象。 当我对此进行测试时,它似乎没有携带标头值。 根据这篇文章,为重定向请求设置标题是不可能的。所以除了重定向,也许我应该试试别的? 有什么想法吗?