java免费获取物流信息

2018年03月26日 17:27:28 Gavin_wangzg 阅读数:715 标签: 物流信息 java java快递 更多

个人分类: java小记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Gavin_wangzg/article/details/79701113

原理其实很简单就是去java自带的HttpURLConnection模拟浏览器请求快递搜索的方法

第一步:分析快递搜索框是怎么来查询的,在web页面上,无非就是用Jquery的ajax动态的去后台读取物流信息

如上图,分析它的url是如何拼接的,显然只有三个参数,type,postid,temp
type:对应物流公司的code(后面在具体讲)
postid:就是我们所查询的物流单号
temp:很简单,Math.random()生成的一个随机数
知道了这些后,接下来就好办了

第二步:该JAVA登场了

public class LogisticsUtil {public static final String QUERYURL = "http://www.kuaidi100.com/query?";public static String setUrl(String logisticsCode, String logisticsNo) {String temp = String.valueOf(Math.random());StringBuilder sb = new StringBuilder(QUERYURL);sb.append("tpye=").append(logisticsCode).append("&");sb.append("postid=").append(logisticsNo).append("&");sb.append("temp=").append(temp);return sb.toString();}public static String queryData(String logisticsCode, String logisticsNo) {String line = "";String temp = String.valueOf(Math.random());String url = "http://www.kuaidi100.com/query?type=" + logisticsCode + "&postid=" + logisticsNo + "&temp=" + temp + "";try {URL realURL = new URL(url);HttpURLConnection conn = (HttpURLConnection) realURL.openConnection();conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36");conn.connect();int responseCode = conn.getResponseCode();if (responseCode == HttpURLConnection.HTTP_OK) {InputStream inputStream = conn.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));while ((line = reader.readLine()) != null) {return line;}reader.close();conn.disconnect();}} catch (Exception e) {e.printStackTrace();}return line;}public static void main(String[] args) throws HttpException, IOException {System.out.println(queryData("ems", "EL#########HK"));//}}

通过queryData的方法就物流公司的code和快递单号传入,并可从响应体中读出物流信息的字节流解析出来就是如下图的JSON格式数据

好了,拿的这些信息后在好好发挥它们的作用。

第三步,之前所前的type,对应物流公司的code其实是每个服务提供商自己定义的一套,我这就选取了其中的几个

public enum LogisticsCompany {SF("顺丰", 1, "shunfeng"),ZT("中通", 2, "zhongtong"),ST("申通", 3, "shentong"),YT("圆通", 4, "yuantong"),HT("汇通", 5, "huitongkuaidi"),YD("韵达", 6, "yunda"),YZ("邮政包裹/平邮", 7, "youzhengguonei"),EMS("EMS", 8, "ems"),TT("天天", 9, "tiantian"),DB("德邦", 10, "debangwuliu");private String name;private int value;private String type;

其中的type也就是对应queryData方法中的logisticsCode参数。
大多的物流查询第三方都类似的情况,这样连注册都省了。

java免费获取物流信息相关推荐

  1. Java免费获取实时汇率API

    最近在做项目,涉及到实时汇率的获取,查了很多方法.下面写下自己获取实时汇率的心得,希望帮到有需要的人. 我使用的是聚合数据,免费的货币汇率API https://www.juhe.cn/docs/ap ...

  2. java代码获取银行实时汇率

    java代码获取银行实时汇率 因为工作的时候甲方要求实施获取银行汇率,并且他们还不提供免费的接口,我就自己去网上找了接口,并写了实现代码,如果你需要的话直接复制粘贴就可以用了. 我用的是idea开发的 ...

  3. java免费视频通话,GitHub标星3.2K

    目录 一.冒泡排序 二.选择排序 三.插入排序 四.快速排序 五.归并排序 六.希尔排序 七.堆排序 八.基数排序(桶排序) 九.递归 十.链表 十一.栈 十二.队列 十三.二叉树 最后 由于文案过于 ...

  4. 基金收益,通过Java实时获取

    前言: 今天要向大家分享一些干货内容,关于Java实时获取收益源码,看过的人都会收藏. 第一,JAVA爬取天天基金网数据使用实例 第二,应用技巧 第三,基本知识点总结和需要注意事项 Java爬虫实时获 ...

  5. java反射获取参数名,100%好评!

    前言 数据库相关的面试题早已成为了一线互联网大厂面试的家常菜,如果你对数据库不太熟悉,我劝你不要轻易面试大厂.那么,为什么数据库成了大厂面试的家常菜呢?主要原因当然还是海量数据. 无论对于刚入行的小白 ...

  6. Java爬虫 获取中国天气网7日天气预报

    Java爬虫 获取中国天气网7日天气预报 前言 工具准备 爬取数据 获取日期和星期 获取天气描述 获取温度范围 获取风向及风力 完整代码 引用 前言 项目需要获取7日天气预报,免费好用的接口寻觅不到, ...

  7. JAVA中获取当前系统时间

    JAVA中获取当前系统时间 转自:http://www.cnblogs.com/Matrix54/archive/2012/05/01/2478158.html 一. 获取当前系统时间和日期并格式化输 ...

  8. java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...

    标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...

  9. 数据集轻松按需搜索,这个工具汇集近2000个图像数据集,可免费获取|Reddit高热...

    杨净 发自 凹非寺  量子位 报道 | 公众号 QbitAI 每个研究机器学习项目的人,似乎都有这样的痛苦.那就是从学术网站.GitHub上寻找到合适的数据集. 但现在,有这样一个网站可以帮你搞定,让 ...

最新文章

  1. SIGIR|乘风破浪的AI华人学者们
  2. 图解MySql命令行创建存储过程
  3. e0312 不存在用户定义的_VistaPro创建自定义变量
  4. 20非常有用的Java程序片段(3)
  5. 03-对图像进行数值计算和加权融合
  6. Linux学习笔记-动态库的生成
  7. NVIDIA 发布 60 余项 CUDA-X 库更新,加速量子计算和 6G 研究等
  8. Hadoop(七)Hive基础
  9. android开发那些事儿(二)--Drawable资源
  10. 竞品分析报告模板----笔记2
  11. html5在线制作网站模板,快速建站 20个设计优秀的HTML网站模板(免费)
  12. OEM/ODM windows 10 源镜像下载
  13. python百例练习之第三例-字典dict()
  14. tensorflow padded_batch的注意事项
  15. 工业互联网是什么,和工业4.0对比,有什么区别?
  16. 程序员编程规范之注释
  17. iOS开发——仿微信图片浏览交互的实现(向下拖拽图片退出图片浏览器)
  18. 适配USB接口奕力 ILITEK Multi-Touch-V5000
  19. python怎样快速下载库_Python如何急速下载第三方库详解
  20. Mysql死锁问题,详细分析

热门文章

  1. 什么叫云计算?云计算通俗解释
  2. word 2010 尾注 尾注序号 连续尾注 尾注分隔符 删除
  3. 新浪微博上市好故事难讲
  4. 开发技巧--发送手机验证码接口调用
  5. 企业电子招投标采购系统之项目说明和开发类型源码
  6. 京东淘宝拼多多自动查券找券搜券返利机器人实现方法分享
  7. photo技能大全,想学ps的来看看
  8. GPS是如何定位的?
  9. ​每天十分钟| Get实用在线英语启蒙教育APP—叽里呱啦
  10. C#使用极光短信发送手机验证码