Android Webview posturl 传参encode问题

1、起因,闲话少说,近期因项目需求,需要在webview必须通过post方式加载url并传参,自然想到posturl(url,byte[])
       2、问题,起初很简单,JSON拼接参数,然后转String,最后String.getBytes(),自然得到了byte[],服务器也很顺利接收到了,可是呢顺利的话应该是一个正常的json串,直接解析就能得到数据,服务端接收到的json串被encode了,例如{}、""等都被encode了,本来呢直接decode也可以解决,偏偏IOS端是正常的,想办法。
       3、解决问题,途径1:通过httpPost将数据post上去,再接收httpresponse,最后拿到response的数据放到webview去加载,前期post跟接收response轻易解决,但是偏偏在解析response加载到webview的时候又出现问题,试着debug调试,未果,索性研究其他办法。
             途径2:还是webview.posturl,区别在于得到json串以后不直接转String,而是通过StringEntity,详情见以下代码


StringEntity se = null;
try
{
se = new StringEntity(jsonObject.toString(),"UTF-8");
se.setContentType("application/json");
byte[] array = EntityUtils.toByteArray(se);
webView.postUrl(url, array);
}
catch (Exception e)
{
e.printStackTrace();
}
             途径3:重写 webview 的 shouldInterceptRequest,针对特定请求修改请求头,详见以下代码

@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
try {
if (url.equals("http://192.168.0.12:8080/tt.php")) {
URL url1 = new URL(url);
HttpURLConnection conn = (HttpURLConnection) url1.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-type", "application/json");
String data = "{\"name\":\"test\"}";
conn.getOutputStream().write(data.getBytes());
WebResourceResponse resp = new WebResourceResponse("text/html",
conn.getHeaderField("encoding"),
conn.getInputStream());
return resp;
}
}catch(Exception e){}
return super.shouldInterceptRequest(view, url);
}

为了方便测试,在本机搭了个简单的服务器,直接生成一个servlet,修改web.xml映射,保证手机电脑在一个网段,在手机端直接访问电脑ip/projectname/servlet映射名称,例如 192.168.0.123/ServerDemo/myServlet,在servlet的dopost方法中解析就可以看到在安卓端webview通过post传递的参数

Android Webview posturl 传参被encode问题相关推荐

  1. android 上传html文件大小,浅谈关于Android WebView上传文件的解决方案

    我们在开发需求的时候,难免会接入一下第三方的H5页面,有些H5页面是具有上传照片的功能,Android 中的 WebView是不能直接打开文件选择弹框的 接下来我讲简单提供一下解决方案,先说一下思路 ...

  2. uniapp给webview进行传参。

    uniapp 页面操作 webview页面操作 onshow(){ getQuery(name) { // 正则:[找寻'&' + 'url参数名字' = '值' + '&']('&a ...

  3. 前端h5与 android/ios 交互传参

    介绍 前端 与 Android/iOS 交互的代码.(双方要约定一个公用的方法) 1.与Android交互 ① 前端 调用 Android 的方法,这里将约定的方法名为:HtmlToAndroid w ...

  4. webview传参给Android,webview 向Android传参

    订单页面是webview,但是支付页面是客户端做,所以要在去付款的标签上onclick js传参. function OrderPay(order_id,pay_type,pay_account_id ...

  5. Android APP跳转微信小程序和APP跳转支付宝小程序传参

    Android APP跳转微信小程序和APP跳转支付宝小程序传参 微信开放文档链接 MINIPROGRAM_TYPE_PREVIEW:体验版. MINIPROGRAM_TYPE_TEST:开发版 MI ...

  6. android使用webview上传文件,Android项目中如何在webview页面中上传文件

    Android项目中如何在webview页面中上传文件 发布时间:2020-11-26 15:56:27 来源:亿速云 阅读:68 作者:Leah 本篇文章为大家展示了Android项目中如何在web ...

  7. Android WebView 支持H5图片上传input type=file

    2019独角兽企业重金招聘Python工程师标准>>> Android WebView 缓存处理 Android WebView 支持H5图片上传<input type=&qu ...

  8. vue 返回上一页传参_H5页面与微信小程序相互跳转并传参(web-view)

    H5页面用vue2.全家桶写的. 一.vue代码编写vue中路由的编写 1)vue init webpack test 2)/src/router/index.js中引入路由组件 import Ind ...

  9. Android通过adb命令传参给APP的方法

    老套路先看图 说下原理: 使用adb命令启动server然后传递参数,service拿到参数后可以根据需求实现模拟控制APP 看代码 package cn.yhsh.adbinputserver.se ...

  10. Android按键响应的几种方式、安卓页面的跳转、页面跳转传参、页面自动跳转、Activity(页面)的生命周期

    按键响应的第一种方式: 在XML文件里面设置按键的onClick绑定函数.就像下面的代码,给Button设置onClick属性,在按键被按下的时候,会调用java文件里面的onClickbtton1这 ...

最新文章

  1. 机器学习算法与理论用到的数学知识
  2. 华为python工程师工资-华为工程师对Python编程的看法
  3. php将soap返回的xml转成数组,PHP – 在PHP中将XML转换为数组 – 在php中解析soap xml并将其存储在数据库中...
  4. spark任务shell运行_了解Spark 应用的一生
  5. C# Socket的粘包处理(转)
  6. 数据分析师如何正确的提意见?(文末赠书)
  7. aix系统java堆_浅谈AIX环境下的Java性能调优
  8. 引用数据类型的方法调用
  9. jquery 序列化表格内容为字符串(serialize)
  10. leetcode 96. 不同的二叉搜索树(Unique Binary Search Trees)
  11. 网络 计算机网络预备知识
  12. 零基础如何入门MATLAB(适用于所有编程语言)?(建议收藏)
  13. 谷歌金山词霸正式发布--免费午餐越来越多
  14. WiFi之WL工具命令
  15. 级数 p级数 q级数 调和级数为什么叫做“调和”级数 等比数列求和公式和等差数列求和 斜率:
  16. 优化网站提高打开速度
  17. 健身服务公司iFIT赴美上市,64亿美元估值中藏着“喜”与“忧”?
  18. 逆水寒江湖无限服务器等级,逆水寒上限多少级 逆水寒等级上限是多少
  19. 【抓包】【Mac Charles】局域网无法抓包 手机热点来解决
  20. js控制excel打印完美解决方案(转)

热门文章

  1. 9.4.3 BINARY与VARBINARY类型
  2. JAVA HD japan_小米小爱AI音箱HD【硬件分析】,你了解智能音箱吗
  3. 【FeignClient报错】Cannot deserialize value of type``from Object value (token `JsonToken.START_OBJECT`)
  4. linux面试基础考题
  5. SQL server置疑数据库修复
  6. 乐优商城服务器部署_黑马乐优商城项目总结
  7. 西南科技大学OJ题 带权无向图存储判定1064
  8. npy文件的保存与读取
  9. 微信小程序的民宿客房预订uniapp小程序
  10. [ 物联网篇 ] ESP32 AWS IoT and Amazon Alexa Development / FreeRTOS平台的Alexa语音助手