Content-Type为application/x-www-form-urlencoded 使用IO流接收不到请求参数
起因: 公司的老系统调用其他平台的接口,在请求头中设置了“Content-Type”:application/x-www-form-urlencoded。接口提供方同事反映接不到参数。请求报文中是带有参数的。
最后发现本地写“Content-Type”:application/json; 对方就可以拿到请求参数,于是结论:
application/x-www-form-urlencoded post请求体的数据不是JOSN格式,所以IO流获取不到。
解决方式1:
- 修改成“Content-Type”:application/json
解决方式2:
- 接收方修改解析逻辑 request.getParameterMap()方式获取
String keyandValue="";
String key="";
String value="";
Iterator<String> it=request.getParameterMap().keySet().iterator();
while(it.hasNext()){
key=it.next();
value = ((Object[])(request.getParameterMap().get(key)))[0].toString();
keyandValue=key+"="+value;
System.out.println(key+"= "+value);
}
本文章参考自:https://blog.csdn.net/zger_/article/details/86170836
欢迎点赞关注收藏哦 ,码云搜索KakiNakajima