Android StringEntity() 和 UrlEncodedFormEntity() 的区别详解手机开发
2023-06-13 09:20:13 时间
今天在做安卓客户端向服务器提交数据的过程中,在组织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]
view plain
copy
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))
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()的形式比较自由,只要是字符串放进去,不论格式都可以
5561.html
app程序应用开发手机开发无线开发移动端开发相关文章
- Android 两种方式实现类似水波扩散效果详解手机开发
- Android动态Java代码调整window大小详解手机开发
- Android FutureTask 分析详解手机开发
- 带你彻底理解 Android 中的 Window 和 WindowManager详解手机开发
- Android开发学习总结(二)——使用Android Studio搭建Android集成开发环境详解手机开发
- [android] 手机卫士欢迎细节和主界面详解手机开发
- [android] 加载大图片到内存详解手机开发
- [android] android下创建一个sqlite数据库详解手机开发
- 修改android最小堆内存详解手机开发
- android移动view详解手机开发
- android获取短信并自动填充详解手机开发
- Android View底层到底是怎么绘制的详解手机开发
- android 打造不同的Seekbar详解手机开发
- android binder机制详解手机开发
- Android之ActivityManagerService启动详解手机开发
- PhoneGap 搭建Android应用环境详解手机开发
- Android——打造万能适配器(CommonAdapter)详解手机开发
- Android——C语言、JNI与低层调用详解手机开发
- Android 获取联系人和电话号码详解手机开发
- Android 查询 添加 修改 删除通讯录联系人示例详解手机开发
- Android Context.getSystemService() 与 ServiceManager 的理解和使用详解手机开发
- Android Binder原理从开始到放弃详解手机开发