C#关键代码:/// <summary>/// 即时查询物流轨迹/// </summary>/// <param name="url">http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json</param>/// <param name="eBusinessID">test1617571</param>/// <param name="appKey">554343b2-7252-439b-b4eb-1af42c8f2175</param>/// <param name="requestData">{\'OrderCode\':\'\',\'ShipperCode\':\'ZTO\',\'LogisticCode\':\'78120038107849\'}</param>/// <returns></returns>public string getOrderTracesByJson(string url,string eBusinessID, string appKey, string requestData){Dictionary<string, string> param = new Dictionary<string, string>();param.Add("RequestData", HttpUtility.UrlEncode(requestData, Encoding.UTF8));param.Add("EBusinessID", eBusinessID);param.Add("RequestType", "1002");string dataSign = encrypt(requestData, appKey, "UTF-8");param.Add("DataSign", HttpUtility.UrlEncode(dataSign, Encoding.UTF8));param.Add("DataType", "2");string result = sendPost(url, param);return result;}/// <summary>/// Post方式提交数据,返回网页的源代码/// </summary>/// <param name="url">发送请求的 URL</param>/// <param name="param">请求的参数集合</param>/// <returns>远程资源的响应结果</returns>private string sendPost(string url, Dictionary<string, string> param){string result = "";StringBuilder postData = https://www.baikexueshe.com/s/new StringBuilder();if (param != null && param.Count > 0){foreach (var p in param){if (postData.Length > 0){postData.Append("&");}postData.Append(p.Key);postData.Append("=");postData.Append(p.Value);}}// return postData.ToString();byte[] byteData = https://www.baikexueshe.com/s/Encoding.GetEncoding("UTF-8").GetBytes(postData.ToString());try{HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);request.ContentType = "application/x-www-form-urlencoded";request.Referer = url;request.Accept = "*/*";request.Timeout = 30 * 1000;request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";request.Method = "POST";request.ContentLength = byteData.Length;Stream stream = request.GetRequestStream();stream.Write(byteData, 0, byteData.Length);stream.Flush();stream.Close();HttpWebResponse response = (HttpWebResponse)request.GetResponse();Stream backStream = response.GetResponseStream();StreamReader sr = new StreamReader(backStream, Encoding.GetEncoding("UTF-8"));result = sr.ReadToEnd();sr.Close();backStream.Close();response.Close();request.Abort();}catch (Exception ex){result = ex.Message;}return result;}///<summary>///电商Sign签名///</summary>///<param name="content">内容</param>///<param name="keyValue">Appkey</param>///<param name="charset">URL编码 </param>///<returns>DataSign签名</returns>private string encrypt(String content, String keyValue, String charset){if (keyValue != null){return base64(MD5(content + keyValue, charset), charset);}return base64(MD5(content, charset), charset);}///<summary>/// 字符串MD5加密///</summary>///<param name="str">要加密的字符串</param>///<param name="charset">编码方式</param>///<returns>密文</returns>private string MD5(string str, string charset){byte[] buffer = System.Text.Encoding.GetEncoding(charset).GetBytes(str);try{System.Security.Cryptography.MD5CryptoServiceProvider check;check = new System.Security.Cryptography.MD5CryptoServiceProvider();byte[] somme = check.ComputeHash(buffer);string ret = "";foreach (byte a in somme){if (a < 16)ret += "0" + a.ToString("X");elseret += a.ToString("X");}return ret.ToLower();}catch{throw;}}/// <summary>/// base64编码/// </summary>/// <param name="str">内容</param>/// <param name="charset">编码方式</param>/// <returns></returns>private string base64(String str, String charset){return Convert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str));}
- 余额和余额宝哪个好 余额宝余额在哪里查看
- 湖南生物机电职业技术学院 湖南生物机电职业技术学院怎么查成绩
- 学校考试怎么查排名 高考成绩排名查询2020
- 内分泌科是检查什么 内分泌检查怎么检查
- 速卖通手机号怎么解绑?速卖通如何运营?
- 速卖通手机号换了怎么修改?修改方法是什么?
- 拼多多订单号怎么查询?如何查看?
- 上海城投水务账单查询网站 上海城投水务集团有限公司客服电话
- 淘宝物流查询和快递公司哪个准确?在哪里查物流?
- 典的部首是什么部 触查字典的部首是什么偏旁
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
