public class ExpressHelper
    {
        /// <summary>
        /// 快递100 获取数据接口
        /// </summary>
        /// <param name="customer">快递100分配的的公司编号</param>
        /// <param name="key">客户授权key</param>
        /// <param name="expressNo">快递单号</param>
        /// <param name="expressCode">快递Code</param>
        /// <returns></returns>
        public static string getExpressData(string customer, string key, string expressNo, string expressCode)
        {
            try
            {

UTF8Encoding encoding = new UTF8Encoding();

string param = synQueryData(expressCode, expressNo, "", "", "", 1);
                var sign = CommonHelper.Md5(param + key + customer);
                string postStrTpl = "customer={0}&sign={1}&param={2}";
                byte[] postData = encoding.GetBytes(string.Format(postStrTpl, customer, sign.ToUpper(), param));

HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("https://poll.kuaidi100.com/poll/query.do");
                myRequest.Method = "POST";
                myRequest.ContentType = "application/x-www-form-urlencoded";
                myRequest.ContentLength = postData.Length;

Stream newStream = myRequest.GetRequestStream();

newStream.Write(postData, 0, postData.Length);
                newStream.Flush();
                newStream.Close();

HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
                if (myResponse.StatusCode == HttpStatusCode.OK)
                {
                    StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);

string res = reader.ReadToEnd();
                    return res;

}
                else
                {
                    //访问失败
                    return "False";
                }
            }
            catch (Exception e)
            {

return e.Message;
            }
        }

#region 获取快递Code

private static string getExpressCode(string key, string num)
        {
            string code = "";
            try
            {

UTF8Encoding encoding = new UTF8Encoding();
                string postStrTpl = string.Format("http://www.kuaidi100.com/autonumber/auto?num={0}&key={1}", num, key);

HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(postStrTpl);
                myRequest.ContentType = "application/x-www-form-urlencoded";
                HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
                if (myResponse.StatusCode == HttpStatusCode.OK)
                {
                    StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);

string res = reader.ReadToEnd();
                    JObject jos = (JObject)JsonConvert.DeserializeObject(res);
                    code = jos["comCode"].ToString();
                }
            }
            catch (Exception e)
            {
                LogHelper.WriteLog("getExpressCode", e);
            }
            return code;

}
        #endregion

#region 实时查询快递单号

/// <summary>
        ///  实时查询快递单号
        /// </summary>
        /// <param name="com">快递公司编码</param>
        /// <param name="num">快递单号</param>
        /// <param name="phone">手机号</param>
        /// <param name="from">出发地城市</param>
        /// <param name="to">目的地城市</param>
        /// <param name="resultv2">开通区域解析功能:0-关闭;1-开通</param>
        /// <returns></returns>
        private static string synQueryData(String com, String num, String phone, String from, String to, int resultv2)
        {

StringBuilder param = new StringBuilder("{");
            param.Append("\"com\":\"").Append(com).Append("\"");
            param.Append(",\"num\":\"").Append(num).Append("\"");
            param.Append(",\"phone\":\"").Append(phone).Append("\"");
            param.Append(",\"from\":\"").Append(from).Append("\"");
            param.Append(",\"to\":\"").Append(to).Append("\"");
            if (1 == resultv2)
            {
                param.Append(",\"resultv2\":1");
            }
            else
            {
                param.Append(",\"resultv2\":0");
            }
            param.Append("}");

return param.ToString();
        }
        #endregion
    }

快递100-获取实时物流信息相关推荐

  1. TPShop使用快递100查询订单物流信息

    TPShop的物流信息显示有点问题,每刷新一次则出现不同的物流信息,怀疑是被快递100进行IP限制或者其他原因,于是便注册了快递100个人版,但是还是不行,每次测试都提示不支持该物流,最后找到快递10 ...

  2. 通过快递100获取快递单号,结合c-lodop热敏纸打印 – 通过菜鸟ISV/自研ERP使用菜鸟电子面单...

    https://www.1024cc.cn/index.php/2019/04/29/%E6%89%93%E5%8D%B0%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95/ 打 ...

  3. 快递100获取快递信息(爬虫)

    快递100获取快递信息(爬虫) 最近搞js逆向,发现个逆向简单的网站,搞一波 1.搞程序先装环境,requests_html库请求加解析于一体,居家旅行必备 pip install requests ...

  4. 模拟快递100请求 通过快递单号获取物流信息

    需求:只提供快递单号获取物流信息 思路:通过快递100获取 实现:快递100有2个接口,可以模拟请求操作. 1.通过快递单号获取快递公司代码. 2.通过快递公司代码和快递单号获取物流信息. 3.返回的 ...

  5. 快递100接口使用整理

    1.注册快递100账号,获取key和公司编号 注:快递100基础版不支持主流快递,如三通一达.顺丰.京东.EMS.德邦.天天.百世.邮政等主流快递的查询.企业版支持所有快递,且有100单的免费测试. ...

  6. 物流一站式查询之快递100篇

    连载篇提前看 物流一站式查询之TrackingMore篇 物流一站式查询之顺丰接口篇 物流一站式查询之快递100 前言 前两篇我们已经讲了TrackingMore和顺丰接口的场景应用和对接示例,本篇, ...

  7. 快递100企业版接口(API)云打印、电子面单实现Java版

    当当当,重点来了,这是个搞好了可以让老板心甘情愿给你加薪至少10%的项目. 先看看痛点: 商城订单系统和发货系统是分离的,数据流无法打通.如果用户咨询,需要N多客服支持. 客服系统和订单系统也是分离的 ...

  8. 【小程序】获取快递100物流信息

    [小程序]获取快递100物流信息 // 点击时间调用 getKdCookie // 中通查不到物流信息 // 小程序开发 要注意 url https 才行 getKdCookie(){wx.reque ...

  9. 【小程序】快递100智能获取物流公司和物流信息

    举个例子,如何只通过一个单号,获取到物流单号的物流信息.要用到下面两个接口,免费,无需注册快递100的key就可以用. 智能识别接口 接口地址:http://www.kuaidi100.com/aut ...

最新文章

  1. 花了一上午,终于完成了作业
  2. 洛谷 P2335 [SDOI2005]位图
  3. 经典技术书籍分享(5):《WCF技术内幕》封面和购买地址
  4. 数云:PolarDB助力数云轻松应对双十一
  5. pyqtsignal()作用
  6. Qt实现带验证码的输入框
  7. 用于文本去重(相似度计算)的Simhash算法学习及python实现(持续学习中)
  8. 大型网站技术架构-第4篇 架构师
  9. python逻辑回归模型建模步骤_逻辑回归建模及变量重要性可视化(Python实现)
  10. 为什么大厂程序员的另一半全职太太比例特别多?
  11. 自然语言处理的词法分析、句法分析、语义分析
  12. 微信小程序微信授权登录,使用getPhoneNumber()部分手机无法获取动态令牌code(Taro)
  13. Win7系统没有音量图标,系统图标为灰色打不开的解决方法
  14. 《《《翻译》》》Navigation Through Cluttered Environments
  15. 知道焊缝长度如何确定节点板尺寸_钢桁架节点图 中各尺寸确定原则 总结
  16. VSCode快捷键配置复制一行
  17. 多线程爬虫爬取电影天堂资源
  18. zzulioj1094c语言版答案,ZZULIOJ 1094: 统计元音(函数专题)
  19. 约定由于配置(Convention over Configuration)
  20. Three.js 地理坐标和三维空间坐标的转换

热门文章

  1. 微软将在 6 月 24 日的活动中推出重新设计的 Windows 10
  2. 程序猿的一万种解压方式
  3. 什么是ASPICE?ASPICE认证的五个等级?
  4. 浏览器的混杂模式和标准模式
  5. 四旋翼无人机的设计与实现讲解
  6. 【代码覆盖率】JAVA好用的代码覆盖率工具有哪些?
  7. 案例 7-1.4 统计工龄(20 分)
  8. 益生菌产业概念股--300858科拓生物
  9. 使用suds-py3调用webservice WSDL接口
  10. java如何实现建行支付_Android java对接建行支付SDK