java json utf8_java – 解析媒体类型’application / json; encoding = utf8,charset = utf-8’时出错...

我正在使用DropWizard和jersey来创建一个从服务器接受JSON并将其映射到POJO的客户端.但是,我在调用客户端时收到此错误.

java.lang.IllegalArgumentException: Error parsing media type 'application/json;encoding=utf8, charset=utf-8'

我的代码如下:

@Path("/something")

@Produces(MediaType.APPLICATION_JSON)

public class SampleClient {

final Client client;

WebResource.Builder builder;

public SampleClient (Client client) {

this.client = client;

this.builder = client.resource("http://localhost/mysample/service").type("application/json");

}

@GET

public MyMapper getSomething() {

MyMapper result = builder.accept("application/json").get(MyMapper.class);

return result;

}

}

我究竟做错了什么?

解决方法:

您是否在客户端生成该标头?

Content-Type := type "/" subtype *[";" parameter]

哪里

parameter := attribute "=" value

所以你可以拥有一个可解析的媒体类型:

Content-type: application/json; encoding=utf8; charset=utf8

使用分号而不是逗号.这并不意味着它是正确的,只是可解析的.请尝试使用:

Content-type: application/json; charset=utf8

如果这是客户端错误,那么您可能需要配置Accept标头(并且由于您没有发送任何有效负载,因此不需要Content-type).在没有指定字符集的情况下尝试它(如果失败,它将因其他原因而失败).您可以使用交互式REST客户端(例如Firefox REST client)测试不同的标头和编码

标签:java,json,encoding,rest,jersey

来源: https://codeday.me/bug/20190831/1772315.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值