免费物流查询API调用案例参考.docx
- 文档编号:3304218
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:18
- 大小:19.98KB
免费物流查询API调用案例参考.docx
《免费物流查询API调用案例参考.docx》由会员分享,可在线阅读,更多相关《免费物流查询API调用案例参考.docx(18页珍藏版)》请在冰豆网上搜索。
免费物流查询API调用案例参考
免费物流查询API调用案例参考
这是来自快递鸟的一个快递查询的api接口,支持快递单号查询,接口不错,分享三个案例给大家。
接口申请地址:
JAVA代码
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;
publicclassKdniaoTrackQueryAPI{
//DEMO
publicstaticvoidmain(String[]args){
KdniaoTrackQueryAPIapi=newKdniaoTrackQueryAPI();
try{
Stringresult=api.getOrderTracesByJson("ANE","210001633605");
System.out.print(result);
}catch(Exceptione){
e.printStackTrace();
}
}
//电商ID
privateStringEBusinessID="请申请";
privateStringAppKey="请申请";
//请求url
privateStringReqURL="http:
//api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx";
/**
*Json方式查询订单物流轨迹
*@throwsException
*/
publicStringgetOrderTracesByJson(StringexpCode,StringexpNo)throwsException{
StringrequestData="{'OrderCode':
'','ShipperCode':
'"+expCode+
"','LogisticCode':
'"+expNo+"'}";
Map
params.put("RequestData",urlEncoder(requestData,"UTF-8"));
params.put("EBusinessID",EBusinessID);
params.put("RequestType","1002");
StringdataSign=encrypt(requestData,AppKey,"UTF-8");
params.put("DataSign",urlEncoder(dataSign,"UTF-8"));
params.put("DataType","2");
Stringresult=sendPost(ReqURL,params);
//根据公司业务处理返回的信息......
returnresult;
}
/**
*XML方式查询订单物流轨迹
*@throwsException
*/
publicStringgetOrderTracesByXml()throwsException{
StringrequestData="
xmlversion=\"1.0\"encoding=\"utf-8\"?
>"+
"
"
"
"
"";
Map
params.put("RequestData",urlEncoder(requestData,"UTF-8"));
params.put("EBusinessID",EBusinessID);
params.put("RequestType","1002");
StringdataSign=encrypt(requestData,AppKey,"UTF-8");
params.put("DataSign",urlEncoder(dataSign,"UTF-8"));
params.put("DataType","1");
Stringresult=sendPost(ReqURL,params);
//根据公司业务处理返回的信息......
returnresult;
}
/**
*MD5加密
*@paramstr内容
*@paramcharset编码方式
*@throwsException
*/
@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 intval=result[i]&0xff; if(val<=0xf){ sb.append("0"); } sb.append(Integer.toHexString(val)); } returnsb.toString().toLowerCase(); } /** *base64编码 *@paramstr内容 *@paramcharset编码方式 *@throwsUnsupportedEncodingException */ privateStringbase64(Stringstr,Stringcharset)throwsUnsupportedEncodingException{ Stringencoded=base64Encode(str.getBytes(charset)); returnencoded; } @SuppressWarnings("unused") privateStringurlEncoder(Stringstr,Stringcharset)throwsUnsupportedEncodingException{ Stringresult=URLEncoder.encode(str,charset); returnresult; } /** *电商Sign签名生成 *@paramcontent内容 *@paramkeyValueAppkey *@paramcharset编码方式 *@throwsUnsupportedEncodingException,Exception *@returnDataSign签名 */ @SuppressWarnings("unused") privateStringencrypt(Stringcontent,StringkeyValue,Stringcharset)throws UnsupportedEncodingException,Exception { if(keyValue! =null) { returnbase64(MD5(content+keyValue,charset),charset); } returnbase64(MD5(content,charset),charset); } /** *向指定URL发送POST方法的请求 *@paramurl发送请求的URL *@paramparams请求的参数集合 *@return远程资源的响应结果 */ @SuppressWarnings("unused") privateStringsendPost(Stringurl,Map 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","*/*"); conn.setRequestProperty("connection","Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)"); conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); conn.connect(); //获取URLConnection对象对应的输出流 out=newOutputStreamWriter(conn.getOutputStream(),"UTF-8"); //发送请求参数 if(params! =null){ StringBuilderparam=newStringBuilder(); for(Map.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(),"UTF-8")); Stringline; while((line=in.readLine())! =null){ result.append(line); } }catch(Exceptione){ e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{ try{ if(out! =null){ out.close(); } if(in! =null){ 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 b1=data[i++]&0xff; if(i==len) { sb.append(base64EncodeChars[b1>>>2]); sb.append(base64EncodeChars[(b1&0x3)<<4]); sb.append("=="); break; } b2=data[i++]&0xff; if(i==len) { sb.append(base64EncodeChars[b1>>>2]); sb.append(base64EncodeChars[((b1&0x03)<<4)|((b2&0xf0)>>>4)]); sb.append(base64EncodeChars[(b2&0x0f)<<2]); sb.append("="); break; } b3=data[i++]&0xff; sb.append(base64EncodeChars[b1>>>2]); sb.append(base64EncodeChars[((b1&0x03)<<4)|((b2&0xf0)>>>4)]); sb.append(base64EncodeChars[((b2&0x0f)<<2)|((b3&0xc0)>>>6)]); sb.append(base64EncodeChars[b3&0x3f]); } returnsb.toString(); } } PHP代码 php //电商ID defined('EBusinessID')ordefine('EBusinessID',1237100); //电商加密私钥,注意保管,不要泄漏 defined('AppKey')ordefine('AppKey','518a73d8-1f7f-441a-b644-33e77b49d846'); //请求url defined('ReqURL')ordefine('ReqURL','http: //api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx'); /** *Json方式查询订单物流轨迹 */ functiongetOrderTracesByJson(){ $requestData="{'OrderCode': '','ShipperCode': 'SF','LogisticCode': '589707398027'}"; $datas=array( 'EBusinessID'=>EBusinessID, 'RequestType'=>'1002', 'RequestData'=>urlencode($requestData), 'DataType'=>'2', ); $datas['DataSign']=encrypt($requestData,AppKey); $result=sendPost(ReqURL,$datas); //根据公司业务处理返回的信息...... return$result; } /** *XML方式查询订单物流轨迹 */ functiongetOrderTracesByXml(){ $requestData=" xmlversion=\"1.0\"encoding=\"utf-8\"? >". " " " " ""; $datas=array( 'EBusinessID'=>EBusinessID, 'RequestType'=>'1002', 'RequestData'=>urlencode($requestData), 'DataType'=>'1', ); $datas['DataSign']=encrypt($requestData,AppKey); $result=sendPost(ReqURL,$datas); //根据公司业务处理返回的信息...... return$result; } /** *post提交数据 *@paramstring$url请求Url *@paramarray$datas提交的数据 *@returnurl响应返回的html */ functionsendPost($url,$datas){ $temps=array(); foreach($datasas$key=>$value){ $temps[]=sprintf('%s=%s',$key,$value); } $post_data=implode('&',$temps); $url_info=parse_url($url); if($url_info['port']=='') { $url_info['port']=80; } echo$url_info['port']; $httpheader="POST".$url_info['path']."HTTP/1.0\r\n"; $httpheader.="Host: ".$url_info['host']."\r\n"; $httpheader.="Content-Type: application/x-www-form-urlencoded\r\n"; $httpheader.="Content-Length: ".strlen($post_data)."\r\n"; $httpheader.="Connection: close\r\n\r\n"; $httpheader.=$post_data; $fd=fsockopen($url_info['host'],$url_info['port']); fwrite($fd,$httpheader); $gets=""; $headerFlag=true; while(! feof($fd)){ if(($header=@fgets($fd))&&($header=="\r\n"||$header=="\n")){ break; } } while(! feof($fd)){ $gets.=fread($fd,128); } fclose($fd); return$gets; } /** *电商Sign签名生成 *@paramdata内容 *@paramappkeyAppkey *@returnDataSign签名 */ functionencrypt($data,$appkey){ returnurlencode(base64_encode(md5($data.$appkey))); } ? > .NET代码 usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Web; usingSystem.Net; usingSystem.IO; namespaceK
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 免费 物流 查询 API 调用 案例 参考