接口对接常见的问题基本上是数据签名错误导致的接口联调失败,而API接口是获取网络服务最便捷的方式,合理地使用API接口开发项目可以大大提高开发效率,把精力都集中在程序的业务逻辑之上,避免重复造轮子。

本期给大家讲解:如何用C# 实现免费快递查询API接口对接。非常简单,略懂技术的菜鸟也能直接对接。注:申请试用快递鸟API Key可以免费测试

方法调用的代码实现

//电商ID 去快递鸟注册
string eEBusinessID = "test1617571";//电商加密私钥,快递鸟提供,注意保管,不要泄漏
string appKey= "554343b2-7252-439b-b4eb-1af42c8f2175";//请求url
string reqURL = "http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json";
//请求指令
string reqType="1002";
//2-json
string dataType = "2";
//字符编码采用UTF-8
string charset = "UTF-8";
//JSON字符串string
string jsonStr =
"{\"OrderCode\":\"\",\"ShipperCode\":\"SF\",\"LogisticCode\":\"118461988807\"}" ;
//把(jsonStr+APIKey)进行MD5加密
string md5Str=MD5(jsonStr + apiKey, charset);
//把md5Str 进行Base64编码
string base64Str=base64(md5Str,charset);
//进行URL编码 (utf-8)
string datasign = HttpUtility.UrlEncode(base64Str, charset);
//请求报文参数
string postStr = "RequestType=reqType&EBusinessID= eEBusinessID&RequestData=jsonStr
&DataSign= datasign&DataType=dataType";
//通讯协议使用Http协议Post请求方式 返回轨迹数据
string post = SendPost(reqURL, postStr);
//获取到的post数据就是快递鸟返回的完整报文,接下来自己写一个解析json的方法就能获取到里面的字段信息。

C#封装的方法

///<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));
}/// <summary>/// Post方式提交数据,返回网页的源代码/// </summary>/// <param name="url">发送请求的 URL</param>/// <param name="postData">请求报文参数</param>/// <returns>远程资源的响应结果</returns>private string SendPost(string url, string postData){string result = "";byte[] byteData = 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.ToString();}return result;}

下期大家想看什么内容,可以在下方留言,一起探讨。

如何用C# 实现免费快递查询API接口对接相关推荐

  1. trackingmore快递查询平台_快递查询API接口(trackingmore)

    快递查询接口 目前提供快递查询的接口平台有: 不同接口的区别: (1)Trackingmore支持380家快递公司,其中有55家为国内的快递,其余325家为国际快递.具体的价格为0.6分钱/单号左右, ...

  2. 极兔快递单号查询 快递鸟API接口对接指南-极兔速递

    目录 1.完成前期准备工作 2.API接口 3.请求参数(Headers) 4.请求参数(Body) 5.返回参数(Return) 6.请求完整报文(示例) 7.成功返回报文(示例) 8.失败返回报文 ...

  3. 各种快递查询Api接口(快递鸟)

    文章目录 #应用场景 #申请Key #快递查询Api接口 #前提 项目开发中,有些需求难免会用到关于快递的一些Api接口:本篇主要介绍的是快递的查询Api及与其他各家的不同之处: 常用的提供快递Api ...

  4. 快递查询Api接口(快递鸟)

    前提 应用场景 可实现需求 申请Key 快递查询Api接口 接口文档及各开发语言Demo 查询Api接口定义 系统级输入参数 应用级输入参数 返回结果参数 请求JSON参数 响应JSON参数 查询Ap ...

  5. 第三方快递鸟免费物流轨迹单号查询api接口对接案例

     电商平台和小程序都有物流模块,需要查询物流轨迹状态,一家家去对接顺丰.申通.中通.圆通.韵达.百世.邮政.EMS.京东.天天.德邦.安能等快递单号查询接口和电子面单API接口,是非常麻烦的,快递鸟集 ...

  6. 免费常用快递查询API接口及快递在线下单API分享

    1.常用快递API 快递鸟支持顺丰.EMS.申通.圆通.韵达.汇通.中通.天天.德邦.全峰等国内外418家主流快递物流公司接口. 适用于电商网站.企业内部系统或者在线管理系统这种一般都是拥有一定需求量 ...

  7. 免费快递单号查询api接口对接调用demo地址

    应用场景: 最常见的应用场景如下: (1)电商网站:例如B2C.团购.B2B.批发分销站.C2C.本地生活交易等网站. (2)管理系统:订单处理平台.订货平台.发货平台.分销系统.渠道管理系统.客户管 ...

  8. 免费快递单号查询api接口对接调用(PHP示例)

    快递鸟集成快递单号查询API接口,可以同时对接顺丰快递查询,中通.申通.圆通.韵达.百世.EMS等国内外418家物流快递公司接口查询等.这些快递物流企业,提供了快递单号自动识别接口,快递单号查询接口等 ...

  9. 免费快递查询_Api接口

    快递查询接口对接需求量比较大,此博客做免费快递接口做整理,并附上调用方式,如果有错误的地方,望沟通指教. 一.快递查询接口类型 目前有提供免费快递查询接口的公司有:快递鸟 这些快递接口除了快递鸟以外, ...

最新文章

  1. 颜色排序(Sort Colors)
  2. Vmware 中安装Unix
  3. Shell脚本语言与编译型语言的差异
  4. 下一个游戏新风口已来?小游戏或成2018年最大游戏黑马
  5. mysqldump全量恢复_删库不跑路-详解MySQL数据恢复
  6. CF1260C-Infinite Fence【结论题】
  7. 使用Spring Integration聚合异步结果
  8. git 常用命令备查
  9. vue-cli搭建项目(笔记)
  10. vim默认设置的配置
  11. Linux统计文件夹中文件的个数
  12. Atitit 锁的不同层级 app锁 vm锁 os锁 硬件锁 目录 1. 在硬件层面,CPU提供了原子操作、关中断、锁内存总线的机制 1 1.1. test and set指令 1 1.2. 锁内
  13. atitit.解决net.sf.json.JSONException There is a cycle in the hierarchy
  14. SQLServer 2016报错Microsoft R Open 和 Microsoft R Server的解决方案
  15. power builder的安装和使用
  16. 简单学JAVA-学好Java能做啥
  17. Java EE Security API ,给企业最棒的安全守护!
  18. 去哪儿网首页分析 Home.vue
  19. 远程桌面控制软件 Splashtop 新增本地部署版产品 On-Prem
  20. spring-注解实现自动装配

热门文章

  1. iOS UI篇——轮播图Banner图片动图混合无限轮播
  2. 【EI检索】VRHCIAI 2022欢迎各位学者来稿
  3. X书作品负面下沉举报脚本
  4. 企业HR面试提问100例分享(上)
  5. Python爬取的网页,需要解码怎么办
  6. 《暗时间》读书笔记--第二章 进度条,第三章 有效记忆和学习
  7. Spring Aware 是什么?
  8. 局域网IP地址分类方法
  9. Qt 读写txt文件
  10. Junit 测试框架的详细讲解