我使用jmeter通过post请求向测试服务器发送json。
以下请求始终失败:
{“位置”:{“纬度”:“37.390737”,“经度”:“-121.973864”},“类别”:“caf”é & 面包店
响应数据中的错误消息是:[源:org.apache.catalina.connector]处的utf-8中间字节0x20无效。coyoteinputstream@6073ddf0; 行:6,列:20]
请求根本不会发送到服务器。其他请求(例如,将category中的值替换为其他有效的category,如“delis”)非常有效。
我想这是一个与“caf”有关的编码问题é" 但我不知道怎么解决。你知道吗?谢谢!
3条答案
按热度按时间ibrsph3r1#
在jmeter 5.2.1中,上述解决方案对我都不起作用
我试过什么?
设置jmeter属性文件:sampleresult.default.encoding=utf-8(不起作用)
设置header content type=application/json;utf-8(不起作用)
已尝试预处理器sampler.getarguments().getarguments(0).setvalue(新字符串(utf8bytes))(不起作用)
幸运的是,我注意到一个字段“content encoding”(正如ofir kolar所提到的),它似乎最终起了作用
rks48beu2#
在http请求本身中,可以设置“内容编码”。我在那里设置了“utf-8”,它解决了问题
m1m5dgzv3#
您可能需要一个http头来发布json:
如果没有这个,字符串很可能不是utf-8编码的。json应该是utf-8格式,因此
é
应该是0xc3 0xa9
.如果没有这个头,字节序列可能是
0xe9
,采用iso-8859-1编码。这可以解释这个错误,因为utf-8序列0xe_
是3字节的序列0xe9 0x20
(其中0x20
后面是空格吗é
)并抱怨“中间字节无效”。来源:使用jmeter发布json请求