【soapUI】解决post请求时,body为json串,服务器无法解析问题

       背景:发送post请求,且body为json串时,response响应值总是提示“XX字段值不能为空”,采用Postman、jmeter工具尝试,结果都是如此,但Postman、jmeter采用提交的内容类型为application/x-www-form-urlencod,服务器却可以解析,也能成功返回正确数据,只能猜想是header问题所致,于是请求开发帮助,在代码里面,加入打印request和response日志,再通过soapui重新发送json串,发现请求参数中,json串键和键值都为空,而且偶尔还出现,将整个json串当做一个键值,故分析是服务器不支持解析json串提交的内容类型问题所致。

 

       原因:通过抓包和分析请求中header信息,以及与开发了解代码解析代码原理,发现http协议默认提交的内容类型为application/x-www-form-urlencod,故发送json串,服务器是无法解析。

 

       解决方法:让开发修改代码,兼容json提交的内容类型“application/json”后,返回soapui工具,选择request请求,将body中Media Type,选择或输入“application/json”类型,再输入符合json格式的json串 ,再执行请求,就可以成功看到服务器response回来的值。

 

备注:
      1、此问题原因和解决方法,与我另外一篇博客思路差不多,地址:
http://blog.csdn.net/zouxiongqqq/article/details/51718437

      2、了解原理后,顺便解决了soapui发送post请求,提交的内容类型为application/x-www-form-urlencod时,body内容应采用如何方式提交问题,方法:在soapui  request请求的body中,将Media Type中选择或输入“application/x-www-form-urlencod”,再输入参数和值(比如:loginname=test&password=123456) ,再执行即可。
      3、其他工具要支持json格式发送请求,与方法1雷同。
      4、若其他工具中body,采用其他提交的内容类型(比如:text/xml、multipart/form-data等)发送请求,一定要记住服务器是否支持提交的内容类型,以及body内容对应编写方式,否则无法解析。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值