c#阿里CSB接口对接--
生活随笔
收集整理的這篇文章主要介紹了
c#阿里CSB接口对接--
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在接到公司有業(yè)務(wù)要接入對方CSB接口后,去阿里的git上找了csb的sdk,但是下載回來后怎么使用都是錯的,不是加密校驗錯誤就是500,但是通過java的代碼能正常的運(yùn)行,所以分析java 的csb sdk包后通過以下方法正常接入
var url = "";var post = "json字符串?dāng)?shù)據(jù)";var ak = "ak";var sk = "sk";var request = (HttpWebRequest)WebRequest.Create(url);request.Method = "post";request.Timeout = 5000;ServicePointManager.ServerCertificateValidationCallback +=CheckValidationResultp;DateTime time = new DateTime(0x7b2, 1, 1, 0, 0, 0, DateTimeKind.Utc);TimeSpan span = (TimeSpan)(DateTime.UtcNow - time);var ltm = ((long)span.TotalMilliseconds).ToString();var dict = new Dictionary<string, string>();dict.Add("_api_timestamp", ltm);dict.Add("_api_access_key", ak);dict.Add("_api_name", "sign_info");dict.Add("_api_version", "1.0.0");request.Headers.Set("Accept-Language", "gzip,deflate");request.ContentType = "application/json"; SetHeaderValue(request.Headers, "_api_version", "1.0.0");SetHeaderValue(request.Headers, "_api_name", "sign_info");SetHeaderValue(request.Headers, "_api_access_key", ak);SetHeaderValue(request.Headers, "_api_timestamp", ltm);//組織加密字符串var strr = "_api_access_key="+ak+"&_api_name=sign_info&_api_timestamp="+ ltm + "&_api_version=1.0.0";//加密的方法HMACSHA1 hmacsha1 = new HMACSHA1{Key = Encoding.UTF8.GetBytes(sk)};var sig= Convert.ToBase64String(hmacsha1.ComputeHash(Encoding.UTF8.GetBytes(strr)));SetHeaderValue(request.Headers, "_api_signature", sig);request.UserAgent = "Apache-HttpClient/4.4.1 (Java/10.0.2)";var buff = Encoding.UTF8.GetBytes(post);request.ContentLength = buff.Length;var outim = request.GetRequestStream();outim.Write(buff,0, buff.Length);outim.Close();var response =request.GetResponse() as HttpWebResponse;var str = new StreamReader(response.GetResponseStream(),Encoding.UTF8);var html = str.ReadToEnd();作者QQ:403648571??
總結(jié)
以上是生活随笔為你收集整理的c#阿里CSB接口对接--的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自己写个基金分析系统,准确率也太高了
- 下一篇: 软件工程试题-b