解决:请求编码格式默认为空,在"TestCase"的指定Step的Request Properties中, 改Encoding编码格式为UTF-8.
原文:soapUI发送post请求json格式,返回请求数据为空
使用soupUI发送post请求,活的结果告诉请求参数为空,意思就是没有请求到body的内容,但是用postman等工具都是正常的。
于是,查看系统接口日志。提示获取http请求的body失败。
网上查询第二句话,”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即可。
再次发送请求:成功。