netcore调用契约锁验签接口
请求头:三个自定义参数和一个Content-Type:
1、自定义参数 x-qys-accesstoken :“创建应用”时生成的AppToken;
2、自定义参数 x-qys-timestamp :发起请求的当前时间,可以取自机器的本地时间,误差不能超过15分钟;
3、自定义参数 x-qys-nonce :本地生成的随机数,一般用UUID标识,15分钟内不能重复。与时间参数结合防止重放攻击;
4、自定义参数 x-qys-signature :即签名信息,生成算法为:Md5(AppToken + AppSecret + timestamp+nonce),即AppToken 和 AppSecret 和 timestamp和nonce拼接的字符串的MD5值,注:MD5值为32位小写。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | var formData = new MultipartFormDataContent(); var seed = Guid.NewGuid().GetHashCode(); Random rd = new Random(seed); int i = rd.Next(0,100000); double j = ( double )i / 100000; string uuid = j.ToString(); string AppToken = "wWqwt5Aa8A" ; string AppSecre = "TYkdqgZFZOOTfw6VspVK4znw5MzoP4" ; TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); string time = Convert.ToInt64(ts.TotalMilliseconds).ToString(); string signature = MD5Hepler.MD5Encrypt32(AppToken + AppSecre + time + uuid); formData.Headers.Add( "x-qys-accesstoken" , AppToken); formData.Headers.Add( "x-qys-timestamp" , time); formData.Headers.Add( "x-qys-nonce" , uuid); formData.Headers.Add( "x-qys-signature" , signature); formData.Add( new StreamContent(memoryStream, ( int )memoryStream.Length), "file" , fileName); var _httpclient = new HttpClient(); var response = _httpclient.PostAsync(uri, formData).Result; |
本文来自博客园,作者:zwbsoft,转载请注明原文链接:https://www.cnblogs.com/zwbsoft/p/16023003.html
电话微信:13514280351
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南