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

JAX-RS 2.0-Jersey中内容类型的charter编码的使用

田德馨
2023-03-14

我正在用Jersey实现开发JAX-RS 2.0客户机。REST API返回内容类型为“application/json”的响应;UTF-8'

 org.glassfish.jersey.message.internal.HeaderValueException: Unable to parse "Content-Type" header value: "application/json; UTF-8"
at org.glassfish.jersey.message.internal.InboundMessageContext.exception(InboundMessageContext.java:318)
at org.glassfish.jersey.message.internal.InboundMessageContext.singleHeader(InboundMessageContext.java:313)
at org.glassfish.jersey.message.internal.InboundMessageContext.getMediaType(InboundMessageContext.java:427)
Client clientSaml = ClientBuilder.newBuilder().sslContext(context)
            .hostnameVerifier(new HostnameVerifier() {
                @Override
                public boolean verify(String arg0, SSLSession arg1) {
                    // TODO Auto-generated method`enter code here` stub
                    return true;
                }
            }).build();

    clientSaml.register(new SAMLAuthenticator(token));
    clientSaml.register(new LoggingFilter());

    WebTarget target = clientSaml
            .target(URL_OF_API);

    Response resp = target.request(MediaType.APPLICATION_JSON).get();

    System.out.println(resp.getMediaType().toString());

以前有人有这个问题吗?有什么可能的解决办法??JAX-RS的其他实现是否支持它?

共有1个答案

连俊智
2023-03-14

您忘记了charset=:

Content-Type: application/json; charset=UTF-8

参见第14.17节HTTP 1.1的Content-Type。

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

  • 我正在使用axios@0.21.1我想验证响应头。我无法从GET响应验证标题“内容类型”和“内容编码”。 “内容类型”:无论我在请求中传递什么内容类型,响应中的内容类型始终是application/JSON。示例代码段: 当我检查回复时。我看到内容类型显示为“application/json”,而不是自定义类型。但当我在《邮递员》中点击相同的url时,我可以看到内容类型和预期的一样。 任何帮助都是

  • 我的问题有两个方面,与编码有关。我在JBoss 7.1.1上部署了一个REST web应用程序。它有一个外部web服务的适配器,我已经用CXF java2wsdl从提供的WSDL为其创建了存根。在此外部web服务请求的请求/响应期间 问题是,我的REST服务或SOAP适配器无法正确发送/使用这些编码内容,而这些内容来自SOAPUI。下面是一个例子 REST调用将参数“挈挈挈挈挈挈挈挈”传递为 @P

  • 我有一个泽西1.19.1资源,它实现了和方法。方法需要一个JSON字符串作为输入/请求正文,而方法接受纯文本。对于JSON映射,我使用Jackson 2.8。 由于资源是按这种方式定义的,我不希望客户端需要指定内容类型请求头,因为Jersey需要它来确定在请求体上使用哪个对象映射器。 相反,我想告诉Jersey“将此对象映射器用于此输入”,或者“始终假定此输入将在此方法上具有一个应用程序/json

  • 问题内容: 请原谅我,但我可能不熟悉正确询问此问题所需的所有术语。 我正在使用jax-rs 的实现在Java中使用一个相当简单的REST Web服务。方法头是这样的: MessageContext在哪里。 我要完成的两件事似乎无法弄清: 如果满足某些条件(例如,出现错误),则更改内容类型 更改响应的状态码 我尝试通过通过MessageContext访问响应来更改响应: 但是这些变化与发送的响应无关

  • 我的HTTP放调用响应由以下代码打印。 我想打印要在console或其他格式上打印的内容类型信息。基本上我希望看到c#中的内容类型。我该怎么做?