jmeter无效的utf-8中间字节

eqzww0vc  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(3)|浏览(623)

我使用jmeter通过post请求向测试服务器发送json。
以下请求始终失败:
{“位置”:{“纬度”:“37.390737”,“经度”:“-121.973864”},“类别”:“caf”é & 面包店
响应数据中的错误消息是:[源:org.apache.catalina.connector]处的utf-8中间字节0x20无效。coyoteinputstream@6073ddf0; 行:6,列:20]
请求根本不会发送到服务器。其他请求(例如,将category中的值替换为其他有效的category,如“delis”)非常有效。
我想这是一个与“caf”有关的编码问题é" 但我不知道怎么解决。你知道吗?谢谢!

ibrsph3r

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所提到的),它似乎最终起了作用

rks48beu

rks48beu2#

在http请求本身中,可以设置“内容编码”。我在那里设置了“utf-8”,它解决了问题

m1m5dgzv

m1m5dgzv3#

您可能需要一个http头来发布json:

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

如果没有这个,字符串很可能不是utf-8编码的。json应该是utf-8格式,因此 é 应该是 0xc3 0xa9 .
如果没有这个头,字节序列可能是 0xe9 ,采用iso-8859-1编码。这可以解释这个错误,因为utf-8序列 0xe_ 是3字节的序列 0xe9 0x20 (其中 0x20 后面是空格吗 é )并抱怨“中间字节无效”。
来源:使用jmeter发布json请求

相关问题