关于OKHTTP添加公共参数或请求加签名

关于OKHTTP添加公共参数或请求加签名,第1张

关于OKHTTP拦截器Interceptor很强大,很神敬简好用。因为公司有个需求需要对所有请求接口添加共有参数并且对共有参数进行签名。在OKHTTP中GET的请求参数和POST表单形游裤式的参数很容易获取,但是对于BODY类型的一时没想到解决办法,后来想了想发现其实都是可以做的。

GET方稿局法直接url.request().query()即可获得key=value&key=value形式的参数,可以直接拼凑参数,然后签名。

POST方法:有三种情况,表单,body,multipart三种情况,对于multipart主要是文件,一般过滤掉。

重要源码:

if (requestBody instanceof FormBody) {for (int i =0i <((FormBody) requestBody).size()i++) {rootMap.put(((FormBody) requestBody).encodedName(i), ((FormBody) requestBody).encodedValue(i))}} else {//buffer流Buffer buffer = new Buffer()requestBody.writeTo(buffer)String oldParamsJson = buffer.readUtf8()rootMap = mGson.fromJson(oldParamsJson, HashMap.class) //原始参数rootMap.put("publicParams", commomParamsMap) //重新组装String newJsonParams = mGson.toJson(rootMap) //装换成json字符串request = request.newBuilder().post(RequestBody.create(JSON, newJsonParams)).build()}

具体靠参考:http://blog.csdn.net/wuyinlei/article/details/57087872

1. get是从服务器上获取数据,post是向服务器传送数据。

2. get是把参数数据队列加到吵迟提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。

建议:

1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;

2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;

你的情况如果是挺重要的信息,直接用post方式,也不升段李用再解密一次燃手

1.将系统光盘插入光驱,接入系统,并挂困老州载

mount /dev/sr0 /mnt

2.修改apt-get源,将光驱挂含信着的目录加入汪蔽源

vim /etc/apt/sources.list

在首行加入

deb file:///mnt trusty main restricted


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11967918.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存