webview 是Android中很常见的一个组件,在webview.loadUrl()中可以比较简单的加载网页,不过,如果要使用post请求,那么有些坑还是要注意的
首先,和正常的网络请求不同,webview.postUrl(URL,PARAMS)中,URL为地址,而PARAMS参数为bytes,所以第一步,将参数拼接起来,格式如下
String params = key1=value1&key2=value2.........以此类推
大坑来了
在参数中,如果存在特殊符号(比如“+”)时,“+”会变成空格,此时后台处理会出错
那么就要在请求前对其进行处理
params = params.replaceAll("\\+","%2B");
然后进行postUrl请求
webview.postUrl(URL,EncodingUtils.getBytes(params,"utf-8"));
如果找不到EncodingUtils的话
在build.gradle中 引用compile'org.apache.httpcomponents:httpcore:4.4.6' 即可
其他特殊符号没有遇到 暂时没研究 有遇到或者研究的朋友欢迎补充
网友评论