JAVA快递查询API接口调用代码示例Word格式文档下载.docx
《JAVA快递查询API接口调用代码示例Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《JAVA快递查询API接口调用代码示例Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
//api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx
∙4、接口参数
∙
(1)请求内容字段定义
参数
OrderCode
订单编号
ShipperCode
快递公司编码
LogisticCode
物流单号
∙(3)返回参数定义
用户ID
物流运单号
Success
Bool
成功与否
Reason
失败原因
State
物流状态:
2-在途中,3-签收,4-问题件
Traces
Trace
AcceptTime
时间
AcceptStation
描述
Remark
备注
∙5、示例
∙
(1)请求示例
JSON格式
showsourceviewsource
print?
1
{
2
OrderCode"
:
"
3
ShipperCode"
SF"
4
LogisticCode"
118650888018"
5
}
(2)返回示例
01
没有物流轨迹的
02
{
03
EBusinessID"
1109259"
04
Traces"
[],
05
06
07
118461988807"
08
Success"
false,
09
Reason"
null
10
11
有物流轨迹的
12
13
14
15
16
17
true,
18
State"
3,
19
null,
20
[
21
22
AcceptTime"
2014/06/2508:
05:
37"
23
AcceptStation"
正在派件..(派件人:
邓裕富,电话:
xxxxxxxxxx)[深圳市]"
24
Remark"
25
},
26
27
2014/06/2504:
01:
28"
28
快件在深圳集散中心,准备送往下一站深圳[深圳市]"
29
30
31
32
2014/06/2501:
41:
06"
33
快件在深圳集散中心[深圳市]"
34
35
36
37
2014/06/2420:
18:
58"
38
已收件[深圳市]"
39
40
41
42
55:
43
快件在深圳,准备送往下一站深圳集散中心[深圳市]"
44
45
46
47
2014/06/2510:
23:
03"
48
派件已签收[深圳市]"
49
50
51
52
53
签收人是:
已签收[深圳市]"
54
55
56
]
57
∙6、单号识别接口Demo工具.JAVA版DEMO
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.OutputStreamWriter;
importjava.io.UnsupportedEncodingException;
import.HttpURLConnection;
import.URL;
import.URLEncoder;
importjava.security.MessageDigest;
importjava.util.HashMap;
importjava.util.Map;
/**
*
*快递鸟单号识别接口
*@技术QQ群:
xxxxx
*@copyright:
深圳市快金数据技术服务有限公司
*
*ID和Key请到官网申请:
*/
publicclassKdApiOrderDistinguish{
//DEMO
publicstaticvoidmain(String[]args){
KdApiOrderDistinguishapi=newKdApiOrderDistinguish();
try{
Stringresult=api.getOrderTracesByJson("
3967950525457"
);
System.out.print(result);
}catch(Exceptione){
e.printStackTrace();
}
}
//电商ID
privateStringEBusinessID="
请到快递鸟官网申请
//电商加密私钥,快递鸟提供,注意保管,不要泄漏
privateStringAppKey="
//请求url
privateStringReqURL="
//api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx"
;
/**
*Json方式单号识别
*@throwsException
publicStringgetOrderTracesByJson(StringexpNo)throwsException{
StringrequestData="
{'
LogisticCode'
'
+expNo+"
}"
Map<
String,String>
params=newHashMap<
();
params.put("
RequestData"
urlEncoder(requestData,"
UTF-8"
));
EBusinessID);
RequestType"
"
2002"
StringdataSign=encrypt(requestData,AppKey,"
DataSign"
urlEncoder(dataSign,"
DataType"
2"
Stringresult=sendPost(ReqURL,params);
//根据公司业务处理返回的信息......
returnresult;
*MD5加密
*@paramstr内容
*@paramcharset编码方式
@SuppressWarnings("
unused"
)
privateStringMD5(Stringstr,Stringcharset)throwsException{
MessageDigestmd=MessageDigest.getInstance("
MD5"
md.update(str.getBytes(charset));
byte[]result=md.digest();
StringBuffersb=newStringBuffer(32);
for(inti=0;
i<
result.length;
i++){
intval=result[i]&
0xff;
if(val<
=0xf){
sb.append("
0"
sb.append(Integer.toHexString(val));
returnsb.toString().toLowerCase();
*base64编码
*@throwsUnsupportedEncodingException
privateStringbase64(Stringstr,Stringcharset)throwsUnsupportedEncodingException{
Stringencoded=base64Encode(str.getBytes(charset));
returnencoded;
}
privateStringurlEncoder(Stringstr,Stringcharset)throwsUnsupportedEncodingException{
Stringresult=URLEncoder.encode(str,charset);
*电商Sign签名生成
*@paramcontent内容
*@paramkeyValueAppkey
*@throwsUnsupportedEncodingException,Exception
*@returnDataSign签名
privateStringencrypt(Stringcontent,StringkeyValue,Stringcharset)throwsUnsupportedEncodingException,Exception
{
if(keyValue!
=null)
{
returnbase64(MD5(content+keyValue,charset),charset);
returnbase64(MD5(content,charset),charset);
*向指定URL发送POST方法的请求
*@paramurl发送请求的URL
*@paramparams请求的参数集合
*@return远程资源的响应结果
privateStringsendPost(Stringurl,Map<
params){
OutputStreamWriterout=null;
BufferedReaderin=null;
StringBuilderresult=newStringBuilder();
try{
URLrealUrl=newURL(url);
HttpURLConnectionconn=(HttpURLConnection)realUrl.openConnection();
//发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
//POST方法
conn.setRequestMethod("
POST"
//设置通用的请求属性
conn.setRequestProperty("
accept"
*/*"
connection"
Keep-Alive"
user-agent"
Mozilla/4.0(compatible;
MSIE6.0;
WindowsNT5.1;
SV1)"
Content-Type"
application/x-www-form-urlencoded"
conn.connect();
//获取URLConnection对象对应的输出流
out=newOutputStreamWriter(conn.getOutputStream(),"
//发送请求参数
if(params!
=null){
StringBuilderparam=newStringBuilder();
for(Map.Entry<
entry:
params.entrySet()){
if(param.length()>
0){
param.append("
&
}
param.append(entry.getKey());
param.append("
="
param.append(entry.getValue());
//System.out.println(entry.getKey()+"
+entry.getValue());
//System.out.println("
param:
+param.toString());
out.write(param.toString());
//flush输出流的缓冲
out.flush();
//定义BufferedReader输入流来读取URL的响应
in=newBufferedReader(
newInputStreamReader(conn.getInputStream(),"
Stringline;
while((line=in.readLine())!
result.append(line);
}catch(Exceptione){
e.printStackTrace();
//使用finally块来关闭输出流、输入流
finally{
try{
if(out!
=null){
out.close();
if(in!
in.close();
catch(IOExceptionex){
ex.printStackTrace();
returnresult.toString();
privatestaticchar[]base64EncodeChars=newchar[]{
'
A'
'
B'
C'
D'
E'
F'
G'
H'
I'
J'
K'
L'
M'
N'
O'
P'
Q'
R'
S'
T'
U'
V'
W'
X'
Y'
Z'
a'
b'
c'
d'
e'
f'
g'
h'
i'
j'
k'
l'
m'
n'
o'
p'
q'
r'
s'
t'
u'
v'
w'
x'
y'
z'
0'
1'
2'
3'
4'
5'
6'
7'
8'
9'
+'
/'
};
publicstaticStringbase64Encode(byte[]data){
StringBuffersb=newStringBuffer();
intlen=data.length;
inti=0;
intb1,b2,b3;
while(i<
len){
b1=data[i++]&
if(i==len)
{
sb.append(base64EncodeChars[b1>
>
2]);
sb.append(base64EncodeChars[(b1&
0x3)<
<
4]);
=="
break;
b2=data[i++]&
sb.append(base64EncodeChars[((b1&
0x03)<
4)|((b2&
0xf0)>
4)]);
sb.append(base64EncodeChars[(b2&
0x0f)<
b3=data[i++]&
sb.append(base64EncodeChars[((b2&
2)|((b3&
0xc0)>
6)]);
sb.append(base64Encod