Android网络请求-sign参数的设置

本文详细介绍了一种接口签名(sign)的生成方法,包括参数拼接、URL编码、MD5加密等步骤,并提供了具体的Java代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 最近做项目,碰着一个奇怪的请求,后台说在调用接口之前需要验证签名和有效时间,当场就懵逼了,要生成一个sign签名,下面来说说怎么做

首先说说大致思路: sign 的生成:按照规则来是键值对的形式(key=value),拼接的时候按照key=value&key=value(注意:key:后台所需的参数名,value:前台所获取到的值)&time=系统所获取的时间&salt = fangzhou(这个参数按照后台要求),而后进行 urlencode 编码(Java中有方法),下一步进行MD5加密,如果需要将加密后的值全部转化为大写(小写),Java中有方法直接调用即可;

 接下来说说具体怎么实现:

1.请求数值的拼接(key=value&key=value):

String name = "宋小宝";
String address = "东北";

String panameter = "name="+ name + "& address = "+address;


2.在请求数值的拼接字符串后面加上时间戳和特定值(根据后台要求来)

//获取系统时间戳
Date dt= new Date();
Long timeStamp= dt.getTime();

String signText = panameter +"&time="+timeStamp + "&salt=fangzhou";


3.拼接完成后,对signText进行 urlencode 编码

try {
  String urlencoderText =  URLEncoder.encode(signText,"utf-8");
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}




注:这里会抛出一个异常,直接 try 就可以了,这只是一个Java方法直接调用就完毕了

4.然后进行md5加密

//MD5加密
String md5Text = md5(urlencoderText);
md5加密的方法了,网上有,直接c,v就ok了;

如果要对加密后的值,字母全部转化为大写(小写)直接这样:

//MD5加密
String md5Text = md5(urlencoderText).trim().toUpperCase();
注:这是转化为大写的方法(小写的方法:直接在字符串后面这样加就可以了
.trim().toLowerCase();
 

这样就可以了;但是你以为这样就完了? 哥们儿,你想的太简单了;下面才是最坑...的时候,怎么形容了,直接上代码吧!

首先说明一点我用的xutils请求框架(具体怎么用我就不说了,相信大家都会用的-中国的程序猿是最棒的);

//设置请求地址
params = new RequestParams(url);

//添加请求参数
params.addBodyParameter("name",name);
params.addBodyParameter("address",address);
//---添加时间戳---
params.addBodyParameter("time",timeStamp+"");

//加密的参数-sign
params.addBodyParameter("sign",md5Text );

看见没有,没有进行转码的请求参数,照样去添加,一个都不能少,反而还多了一个时间戳的参数,但是注意我上面加密了salt请求参数,这里没有添加!!在最后面添加了转码加密后的请求参数-sign


而后就用正常的发请求的流程就可以啦,,,就是这样--完美


总之一句话-先拼接-后转码-再加密-再发请求

给自己学到的东西-记录下来,别忘了,有问题可以咨询我,我的邮箱:wuyuxiang_627@163.com;

如果有不对,欢迎骚扰我-我乐意奉陪哟,最好是妹子........

同时分享是美德











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值