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

如何使用代理接口在RestEasy客户端框架中设置“内容类型”头?

司寇苗宣
2023-03-14

我使用Resteasy客户端代理框架与REST API对话。我在代理接口上定义了一些方法,但不幸的是,我有一些与发送http请求时没有正确设置内容类型相关的问题,这给了我一个http 400(错误请求)错误代码,因为远程API期望内容类型头参数是application/json。

下面是它的样子:

@Path("/")
public interface RestAPIClient {

  @POST
  @Path("/send")
  String send(@CookieParam("token") String token, @FormParam("name") String id, @FormParam("message") String message, @FormParam("emails") List<String> emails);

}

有没有办法直接在代理接口级别将“Content-type”标头设置为“application/json”?使用一些注释也许?

谢谢

共有2个答案

潘宸
2023-03-14

以及使用:

@Consumes(MediaType.APPLICATION_JSON)

您需要确保请求正文中确实有内容(而不仅仅是参数)。

如果没有内容,则不会设置Content-Type头。

裴育
2023-03-14

如果你尝试

@Consumes(MediaType.APPLICATION_JSON)

在岗位上?

注意很多事情:您需要有一个在方法中发送的“实体”对象(而不是@CookieParam或@FormParam)。在

所以你的方法必须是这样的:

@POST
@Path("/auth")
@Consumes(MediaType.APPLICATION_JSON)
ConnectionInformation auth(@CookieParam("name") String name, @CookieParam("password") String password, MyJSONObject entity);

而“实体”将产生

Content-Type: application/json

你需要。

 类似资料:
  • 我的示例Jersey客户端代码是 我一直在尝试这个代码变体,从上一个星期以来,它是不工作的。在这方面的任何帮助都是高度赞赏的。

  • 我当前正在尝试用eureka设置服务发现,但客户端注册的端口错误。每个Eureka客户机都在自己的nginx反向代理后面的不同服务器上,并且可以通过端口443上的https从外部访问,但是java Eureka客户机配置在不同的端口上。我还尝试在nginx公开的相同端口上配置它们,但nginx服务器进行了无限重定向,并在一些尝试后以错误“无效重定向”停止。eureka客户端在不同的端口上注册,使用

  • 问题内容: RESTEasy(一个JAX-RS实现)具有一个不错的客户端框架,例如: 您如何向此客户端提供HTTP身份验证凭据? 问题答案: 可以使用ClientExecutor提供凭据。

  • 问题内容: 我正在使用客户端代理创建RESTEasy服务,并且到目前为止效果很好。但是,我确实注意到,在我的一些函数中,我看到的是同一行代码: 是否最好将其从函数中删除并使其成为类的成员变量以减少可能的开销?该服务将处理10000 reqs / min的负载。谢谢 问题答案: 例如,您可以将MyClass客户端指定为spring bean,并在需要时将其注入。请注意线程安全性,因为RestEasy

  • 问题内容: 我正在尝试设置HTTP客户端,以便它使用代理,但是我不太明白该怎么做。该文档有多个对“代理”的引用,但是似乎没有一个功能允许定义代理。我需要的是这样的: 知道如何在Go中执行此操作吗? 问题答案: lukad是正确的,您可以设置环境变量,如果这样做,Go将默认使用它。 重击: 走: 您还可以构造自己的http.Client,无论环境如何配置,该客户端都必须使用代理: 如果您不能依赖环境

  • 我的大摇大摆的ui显示“参数内容类型”,其中包含各种条目:、、和。 我只想要。 在repo上有一个类似的未解决的问题,它使用了这个可视化(旧的ui,但相同的想法): 版本 版本