您的位置:首页 > Web前端 > HTML

解决post请求接收数据类型为text/html时参数传递的问题

2018-03-24 18:42 991 查看
当我们需要post数据的时候,如果接收方接收的格式是application/json,我们可以按如下所示操作,将数据放入json体中。



如果对方接收格式是text/html要怎么将参数传递过去呢?

之前采取的方式是在将参数写在params中,如下图所示



发现对方还是取不到我post给他的参数。

正确操作如下

通过postman方式

将数据放入下图中的key,value位置。



通过代码post

将参数params(jsonObject格式) ,转成kv 结构 , 拼接到x-www-form-urlencoded中的key value下

代码参考:

DefaultHttpClient httpClient = new DefaultHttpClient();
String queryString=MapUtils.map2QueryString(params).substring(1);//分割成一对对kv
HttpPost method = new HttpPost(url);
StringEntity entity = new StringEntity(queryString,"utf-8");
entity.setContentEncoding("UTF-8");
entity.setContentType("application/x-www-form-urlencoded" );//这边注意不是设置成x-www-form-urlencoded
method.setEntity(entity);//
try {
HttpResponse result = httpClient.execute(method);
JSONObject jsonResult = null;
String str = "";

Header[] headers = result.getAllHeaders();
for (Header header : headers)
{
System.out.println(header.toString());
}
/** 读取服务器返回过来的json字符串数据 **/

str = EntityUtils.toString(result.getEntity());
/** 把json字符串转换成json对象 **/
jsonResult = JSONObject.fromObject(str);
System.out.println(jsonResult);
} catch (Exception
4000
e) {
System.out.println("post请求提交失败:" + url);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐