webview 上 postUrl 发送参数过程中数据丢失或错误 的问题
2016-01-19 11:25
549 查看
用到了android 的 webview 来展示页面。webview需要用post来传递参数。于是问题出现了,后台解析中发现参数错误。
之前有因为String 和byte[]转行时,数据丢失的问题,于是一直再那方面入手,最后不行了,观察数据终于发现,数据中存在“+”号,到后台了,“+”号全部都不见了。
在网上搜了发现有这个问题的人很少,难道他们都做得比较好,早早就避过了这个问题了么?
由于数据是加密过的BASE64,会不时出现一些符合,如
webview.postUrl("www.testurl.com","data=abcdefg");
加密过后变成了。
webview.postUrl("www.testurl.com","data=dhfakjsdfhksdhf+dfasjkdhf+adsfkhasld");
传到后台解析:
key:data
value:dhfakjsdfhksdhf dfasjkdhf adsfkhasld
懂的人知道”+“号在url中是特殊字符,所以。。。太黄太暴力被和谐了。
有人试过替换字符。。。这个搞应该可行,有些麻烦。。。这种情况应该很多,应该有专门的处理,于是。。。
try {
postData = URLEncoder.encode(data.toString(),"utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
URLEncoder就对字符进行了比较好的处理了。
最后。。。。
webView.postUrl(“www.testurl.com”,("data="+postData).getBytes());
搞定。
之前有因为String 和byte[]转行时,数据丢失的问题,于是一直再那方面入手,最后不行了,观察数据终于发现,数据中存在“+”号,到后台了,“+”号全部都不见了。
在网上搜了发现有这个问题的人很少,难道他们都做得比较好,早早就避过了这个问题了么?
由于数据是加密过的BASE64,会不时出现一些符合,如
webview.postUrl("www.testurl.com","data=abcdefg");
加密过后变成了。
webview.postUrl("www.testurl.com","data=dhfakjsdfhksdhf+dfasjkdhf+adsfkhasld");
传到后台解析:
key:data
value:dhfakjsdfhksdhf dfasjkdhf adsfkhasld
懂的人知道”+“号在url中是特殊字符,所以。。。太黄太暴力被和谐了。
有人试过替换字符。。。这个搞应该可行,有些麻烦。。。这种情况应该很多,应该有专门的处理,于是。。。
try {
postData = URLEncoder.encode(data.toString(),"utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
URLEncoder就对字符进行了比较好的处理了。
最后。。。。
webView.postUrl(“www.testurl.com”,("data="+postData).getBytes());
搞定。
相关文章推荐
- Android Volley完全解析(一),初识Volley的基本用法
- 《iOS Human Interface Guidelines》——In-App Purchase
- Android 手机拍照预览图像与拍照图像
- 动态获取UIWebView的真正高度
- android wifi讲解 wifi列表显示
- 使用jenkins进行Android的持续集成
- Android Studio 很卡怎么解决
- 微信测试号申请
- android
- Maven3.2创建webapp项目过程中问题以及解决方案
- android 窗体透明、黑暗度、背景模糊
- Android Google Map学习二(接受位置更新信息)
- android中handler基本用法总结
- unity, GUI.Button texture is black
- Block总结
- 深入浅出RxJava四-在Android中使用响应式编程
- Swift中的闭包(Closure)
- 【转】iOS开发4:关闭键盘
- 通过推送消息控制Android系统锁屏、唤醒
- Spring MVC之@RequestMapping 详解