java物流查询接口测试代码-快递100
测试代码
返回json格式,xml/html格式自行修改参数
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection; public class kuaidi100 { public static void main(String[] agrs) {
String wuLiu = getWuLiu("huitongkuaidi", "*********");
System.out.println(wuLiu);
}
/**
*
* @author
* @date
* @param com 快递公司代码
* @param nu 物流单号
* @return
*/
public static String getWuLiu(String com,String nu){
String content = null;
try {
/*id:身份授权key,需要申请(此处的key为本人在网上查询)
com:要查询的快递公司代码,不支持中文,自行查看官方文档
nu:要查询的快递单号,请勿带特殊符号,不支持中文(大小写不敏感)
show:返回类型:
0:返回json字符串,
1:返回xml对象,
2:返回html对象,
3:返回text文本。
如果不填,默认返回json字符串。
muti:返回信息数量:
1:返回多行完整的信息,
0:只返回一行信息。
不填默认返回多行。
order:排序:
desc:按时间由新到旧排列,
asc:按时间由旧到新排列。
不填默认返回倒序(大小写不敏感)*/
URL url = new URL(
"http://api.kuaidi100.com/api?id=29833628d495d7a5&com="+com+"&nu="+nu+"&show=0&muti=1&order=desc");
URLConnection con = url.openConnection();
con.setAllowUserInteraction(false);
InputStream urlStream = url.openStream();
String type = con.guessContentTypeFromStream(urlStream);
String charSet = null;
if (type == null)
type = con.getContentType();
//此处的“text/json”与您在show中选择的要一致!!!
if (type == null || type.trim().length() == 0 || type.trim().indexOf("text/json") < 0){
return "";
}
if (type.indexOf("charset=") > 0)
charSet = type.substring(type.indexOf("charset=") + 8); byte b[] = new byte[10000];
int numRead = urlStream.read(b);
content = new String(b, 0, numRead);
while (numRead != -1) {
numRead = urlStream.read(b);
if (numRead != -1) {
String newContent = new String(b, 0, numRead, charSet);
content += newContent;
}
}
urlStream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return content;
} }
返回json格式
{
"message":"ok","status":"1","state":"3","data":[
{"time":"2012-07-07 13:35:14","context":"客户已签收"},
{"time":"2012-07-07 09:10:10","context":"离开[北京石景山营业厅]派送中,递送员[温],电话[]"},
{"time":"2012-07-06 19:46:38","context":"到达[北京石景山营业厅]"},
{"time":"2012-07-06 15:22:32","context":"离开[北京石景山营业厅]派送中,递送员[温],电话[]"},
{"time":"2012-07-06 15:05:00","context":"到达[北京石景山营业厅]"},
{"time":"2012-07-06 13:37:52","context":"离开[北京_同城中转站]发往[北京石景山营业厅]"},
{"time":"2012-07-06 12:54:41","context":"到达[北京_同城中转站]"},
{"time":"2012-07-06 11:11:03","context":"离开[北京运转中心驻站班组] 发往[北京_同城中转站]"},
{"time":"2012-07-06 10:43:21","context":"到达[北京运转中心驻站班组]"},
{"time":"2012-07-05 21:18:53","context":"离开[福建_厦门支公司] 发往 [北京运转中心_航空]"},
{"time":"2012-07-05 20:07:27","context":"已取件,到达 [福建_厦门支公司]"}
]}
java物流查询接口测试代码-快递100的更多相关文章
- java抓取快递100信息接口
package zeze; import java.io.IOException; import org.json.JSONArray; import org.json.JSONException; ...
- PHP实现物流查询(通过快递网API实现)
物流查询实现 引 言:目前快递公司太多了,不可能一个一个去申请api查询.这个时候,就可以通过合作,找一些中间商合作.我试了两家,一家是快递100,一家是快递网. 他们都需要申请key.但是快递100 ...
- PHP最近做了物流快递查询的接口用得是快递100
最近做了物流快递查询的接口用得是快递100的,分享下心得体会 主要使用了2种接口,一个是api的 返回json xml 各种数据的 一个是返回的URL的 就是一个带结果的网址 . 1 申请 找一 ...
- 在Asp.Net MVC中利用快递100接口实现订阅物流轨迹功能
前言 分享一篇关于在电商系统中同步物流轨迹到本地服务器的文章,当前方案使用了快递100做为数据来源接口,这个接口是收费的,不过提供的功能还是非常强大的,有专门的售后维护团队.也有免费的方案,类似于快递 ...
- 阿里云全国快递物流查询api接口
口地址: https://market.aliyun.com/products/56928004/cmapi021863.html?spm=5176.730005.productlist.d_cmap ...
- .netcore 写快递100的快递物流信息查询接口
快递100的物流信息查询接口,官方提供了一些demo;还好官方提供的代码是.netcore版本写的,不过写的有点low;根据官方提供的代码,我按照.netcore 的风格重构了代码:核心代码如下: / ...
- PHP—— 商品物流实时查询接口 (快递100API对接)
PHP后台 与前端 对接商品物流信息的接口 运用的 快递100的API接口 public function getExpress() { $user_id = input('post.user_ ...
- APISpace 全球快递物流查询API接口 免费好用
前言 随着我国电子商务的迅猛发展,物流行业也开始突飞猛进,人们的日常生活越来越离不开快递服务,查快递.寄快递的需求越来越大,随之而来,常用快递接口的需求也越来越大. 全国快递查询接口,支持各大快递 ...
- 快速上手微信小程序-快递100
2007 年 1 月 9 日,乔布斯在旧金山莫斯科尼会展中心发布了首款 iPhone,而在十年后的 1 月 9 日,微信小程序正式上线.张小龙以这样的形式,向乔布斯致敬. 小程序在哪里? 小程序功能模 ...
随机推荐
- The Integers and the Real Numbers
以上我們談了一些 邏輯的基礎,接下來我們會談一些 數學的基礎,也就是整數與實數系統.其實我們已經用了很多,非正式地,接下來我們會正式地討論他們. 要 建構 實數系統的一個方法就是利用公理跟集合論來建構 ...
- 微服务SpringBoot总结
什么是SpringBootSpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品官方介绍:Spring Boot makes i ...
- C++扬帆远航——1
问题及代码: /* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:test.cpp * 作者:常轩 * 完成日期:2 ...
- in和exists比较
in是把外表和内表作hash 连接,而exists 是对外表作loop 循环,每次loop 循环再对内表进行查询. 一直以来认为exists 比in 效率高的说法是不准确的.如果查询的两个表大小相当, ...
- SQL语句中in 与 exists的区别
SQL语句中in 与 exists的区别 SQL中EXISTS检查是否有结果,判断是否有记录,返回的是一个布尔型(true/false); IN是对结果值进行比较,判断一个字段是否存在于几个值的范围中 ...
- DNA sequence HDU - 1560
DNA sequence Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- Layabox UI 笔记
1.UI List 官方文档是 https://ldc2.layabox.com/doc/?language=zh&nav=zh-js-3-3-7 通常用List的时候会出现滚动条按钮比例拉 ...
- Promise,Generator,Await/Async
上节中忘记讲:Iterator接口和Generator函数的关系了,Symbol.iterator方法的最简单的实现就是通过Generator函数: let myIterable = { [Symbo ...
- API服务版本控制 Microsoft.AspNetCore.Mvc.Versioning
我们在进行webapi服务开发时,会遇到一些多个版本的api共存的情况发生,例如某一版本APP上线后,需求发生变更,需要在下一个升级版本更新API,但同时又需要保证这个APP版本能正常使用,这时候就需 ...
- 027.掌握Service-Ingress使用
一 Ingress简介 1.1 Ingress 通常Service的表现形式为IP:Port,即工作在TCP/IP层. 对于基于HTTP的服务来说,不同的URL地址经常对应到不同的后端服务(RS)或者 ...