JAVA快递查询API接口调用代码示例Word格式文档下载.docx

上传人:b****6 文档编号:17516782 上传时间:2022-12-06 格式:DOCX 页数:19 大小:168.72KB
下载 相关 举报
JAVA快递查询API接口调用代码示例Word格式文档下载.docx_第1页
第1页 / 共19页
JAVA快递查询API接口调用代码示例Word格式文档下载.docx_第2页
第2页 / 共19页
JAVA快递查询API接口调用代码示例Word格式文档下载.docx_第3页
第3页 / 共19页
JAVA快递查询API接口调用代码示例Word格式文档下载.docx_第4页
第4页 / 共19页
JAVA快递查询API接口调用代码示例Word格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

JAVA快递查询API接口调用代码示例Word格式文档下载.docx

《JAVA快递查询API接口调用代码示例Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《JAVA快递查询API接口调用代码示例Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

JAVA快递查询API接口调用代码示例Word格式文档下载.docx

//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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1