StringEntity与urlEncodeFormEntity区别 ,apache post body转&分割,post body 格式化
有个post请求,服务器一直说收不到请求。服务器只接收键值对请求。把原来的entity从StringEntity改成urlEncodeFormEntity就可以了。
原因:
urlEncodeFormEntity会将参数以key1=value1&key2=value2的键值对形式发出。
StringEntity可以自己指定ContentType,而默认值是 text/plain,所以不指定ContentType的话 不是以键值对形式发出,如果服务器只接收键值对的话就无法正常解析;
可以使用
httppost.setEntity(new StringEntity(params,ContentType.APPLICATION_FORM_URLENCODED););
来发出与urlEncodeFormEntity一致的post请求