前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android StringEntity() 和 UrlEncodedFormEntity() 的区别

Android StringEntity() 和 UrlEncodedFormEntity() 的区别

作者头像
xiangzhihong
发布2018-01-30 16:15:35
1.1K0
发布2018-01-30 16:15:35
举报
文章被收录于专栏:向治洪向治洪

今天在做安卓客户端向服务器提交数据的过程中,在组织POST数据时,用了UrlEncodedFormEntity()这个方法,但是后台报错,说是无法解析json内容。

按照本来的想法,向后台发送的是 json 格式的内容,里面有参数和值,供后台程序处理,形式如下“:

{"content":"鍛樺伐涓氬姟姘村钩涓嶈冻","townId":"14","companyId":"8","date":"2014-12-27","supervisor":"鑻忚礊鏄?,"userId":0}

但是,用UrlEncodedFormEntity()方法组织的数据发送到服务器却是如下形式:

companyId=8&townId=14&date=2014-12-27&supervisor=%E8%B0%A2%E9%95%BF%E5%BB%B7&content=%E5%91%98%E5%B7%A5%E4%B8%9A%E5%8A%A1%E6%B0%B4%E5%B9%B3%E6%9C%89%E5%BE%85%E6%8F%90%E9%AB%98&userId=0

很显然,是普通的键值对,不是json,所以后台无法接受。

后来改用 StringEntity()方法组织数据,数据的形式就非常自由了,可以组织成自己想要的任何形式,问题解决。

下面来比较一下两种方法的使用:

1. UrlEncodedFormEntity() 

代码语言:java
复制
 List<NameValuePair> pairs = new ArrayList<NameValuePair>();  
  
 NameValuePair pair1 = new BasicNameValuePair("supervisor", supervisorEt.getEditableText().toString());  
 NameValuePair pair2 = new BasicNameValuePair("content", superviseContentEt.getEditableText().toString());  
 NameValuePair pair3 = new BasicNameValuePair("userId", String.valueOf(signedUser.getId()));  
  
 pairs.add(pair1);  
 pairs.add(pair2);  
 pairs.add(pair3);  
  
 httpPost.setEntity(new UrlEncodedFormEntity(pairs, HTTP.UTF_8))  

2. StringEntity()

代码语言:java
复制
 JSONObject postData = new JSONObject();  
  
 postData.put("supervisor", supervisorEt.getEditableText().toString());  
 postData.put("content", superviseContentEt.getEditableText().toString());  
 postData.put("userId", signedUser.getId());  
  
 httpPost.setEntity(new StringEntity(postData.toString(), HTTP.UTF_8));  

可以看出,UrlEncodedFormEntity()的形式比较单一,只能是普通的键值对,局限性相对较大。

而StringEntity()的形式比较自由,只要是字符串放进去,不论格式都可以

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-08-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档