首页 > Web开发 > 详细

webview 上 postUrl 发送参数过程中数据丢失或错误 的问题

时间:2016-01-19 12:26:38      阅读:438      评论:0      收藏:0      [点我收藏+]

用到了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());

搞定。

webview 上 postUrl 发送参数过程中数据丢失或错误 的问题

原文:http://www.cnblogs.com/shuijilove/p/5141650.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!