c#阿里CSB接口对接--

10 篇文章 0 订阅
7 篇文章 0 订阅

在接到公司有业务要接入对方CSB接口后,去阿里的git上找了csb的sdk,但是下载回来后怎么使用都是错的,不是加密校验错误就是500,但是通过java的代码能正常的运行,所以分析java 的csb sdk包后通过以下方法正常接入

  var url = "";
            var post = "json字符串数据";
            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  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值