java免费获取物流信息
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免费获取物流信息相关推荐
- Java免费获取实时汇率API
最近在做项目,涉及到实时汇率的获取,查了很多方法.下面写下自己获取实时汇率的心得,希望帮到有需要的人. 我使用的是聚合数据,免费的货币汇率API https://www.juhe.cn/docs/ap ...
- java代码获取银行实时汇率
java代码获取银行实时汇率 因为工作的时候甲方要求实施获取银行汇率,并且他们还不提供免费的接口,我就自己去网上找了接口,并写了实现代码,如果你需要的话直接复制粘贴就可以用了. 我用的是idea开发的 ...
- java免费视频通话,GitHub标星3.2K
目录 一.冒泡排序 二.选择排序 三.插入排序 四.快速排序 五.归并排序 六.希尔排序 七.堆排序 八.基数排序(桶排序) 九.递归 十.链表 十一.栈 十二.队列 十三.二叉树 最后 由于文案过于 ...
- 基金收益,通过Java实时获取
前言: 今天要向大家分享一些干货内容,关于Java实时获取收益源码,看过的人都会收藏. 第一,JAVA爬取天天基金网数据使用实例 第二,应用技巧 第三,基本知识点总结和需要注意事项 Java爬虫实时获 ...
- java反射获取参数名,100%好评!
前言 数据库相关的面试题早已成为了一线互联网大厂面试的家常菜,如果你对数据库不太熟悉,我劝你不要轻易面试大厂.那么,为什么数据库成了大厂面试的家常菜呢?主要原因当然还是海量数据. 无论对于刚入行的小白 ...
- Java爬虫 获取中国天气网7日天气预报
Java爬虫 获取中国天气网7日天气预报 前言 工具准备 爬取数据 获取日期和星期 获取天气描述 获取温度范围 获取风向及风力 完整代码 引用 前言 项目需要获取7日天气预报,免费好用的接口寻觅不到, ...
- JAVA中获取当前系统时间
JAVA中获取当前系统时间 转自:http://www.cnblogs.com/Matrix54/archive/2012/05/01/2478158.html 一. 获取当前系统时间和日期并格式化输 ...
- java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...
标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...
- 数据集轻松按需搜索,这个工具汇集近2000个图像数据集,可免费获取|Reddit高热...
杨净 发自 凹非寺 量子位 报道 | 公众号 QbitAI 每个研究机器学习项目的人,似乎都有这样的痛苦.那就是从学术网站.GitHub上寻找到合适的数据集. 但现在,有这样一个网站可以帮你搞定,让 ...
最新文章
- SIGIR|乘风破浪的AI华人学者们
- 图解MySql命令行创建存储过程
- e0312 不存在用户定义的_VistaPro创建自定义变量
- 20非常有用的Java程序片段(3)
- 03-对图像进行数值计算和加权融合
- Linux学习笔记-动态库的生成
- NVIDIA 发布 60 余项 CUDA-X 库更新,加速量子计算和 6G 研究等
- Hadoop(七)Hive基础
- android开发那些事儿(二)--Drawable资源
- 竞品分析报告模板----笔记2
- html5在线制作网站模板,快速建站 20个设计优秀的HTML网站模板(免费)
- OEM/ODM windows 10 源镜像下载
- python百例练习之第三例-字典dict()
- tensorflow padded_batch的注意事项
- 工业互联网是什么,和工业4.0对比,有什么区别?
- 程序员编程规范之注释
- iOS开发——仿微信图片浏览交互的实现(向下拖拽图片退出图片浏览器)
- 适配USB接口奕力 ILITEK Multi-Touch-V5000
- python怎样快速下载库_Python如何急速下载第三方库详解
- Mysql死锁问题,详细分析