ReadyAPI/soapUI发送post请求json格式(带有中文字符),后台获取参数为空

解决:请求编码格式默认为空,在"TestCase"的指定Step的Request Properties中, 改Encoding编码格式为UTF-8.

原文:soapUI发送post请求json格式,返回请求数据为空

使用soupUI发送post请求,活的结果告诉请求参数为空,意思就是没有请求到body的内容,但是用postman等工具都是正常的。

ReadyAPI/soapUI发送post请求json格式(带有中文字符),后台获取参数为空

于是,查看系统接口日志。提示获取http请求的body失败。

ReadyAPI/soapUI发送post请求json格式(带有中文字符),后台获取参数为空

网上查询第二句话,”java.nio.charset.MalformedInputException: Input length = 1“,意思就是“

会出现java.nio.charset.MalformedInputException异常,原因是“半个中文问题”。分析上面的程序,就是因为CharsetDecoder对ByteBuffer进行解码的时候,不能保证都可以成功解码成汉字,也许里面有“半个汉字“也说不准。说以当有半个汉字的时候就会出现该异常。
 举个例子,因为在GBK中字母占1byte,汉字占2byte。如"我ABC汉字d"这个字符串,截取5个字节的时候,应该是"我ABC",而截取8个字节的时候,应该是"我ABC汉",而不应该是"我ABC汉?",其中"?"为半个汉字,可理解为向前截取 。所以就会报异常。    (备注:将字符编码GBK改为UTF-8,则每个中文长度按3个字符计算 )”这部分内容为copy,其实就是我们的请求中带有中文,所以要编码格式为UTF-8.
很简单,我们只需要修改Encoding的值为utf-8即可。
ReadyAPI/soapUI发送post请求json格式(带有中文字符),后台获取参数为空
再次发送请求:成功。ReadyAPI/soapUI发送post请求json格式(带有中文字符),后台获取参数为空
 
上一篇:每天一个 Linux 命令(12):more命令


下一篇:LinkedHashMap和HashMap的比较使用