免费物流查询API调用案例参考Word下载.docx
- 文档编号:16209762
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:18
- 大小:19.98KB
免费物流查询API调用案例参考Word下载.docx
《免费物流查询API调用案例参考Word下载.docx》由会员分享,可在线阅读,更多相关《免费物流查询API调用案例参考Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
*Json方式查询订单物流轨迹
*@throwsException
*/
publicStringgetOrderTracesByJson(StringexpCode,StringexpNo)throwsException{
StringrequestData="
{'
OrderCode'
:
'
'
ShipperCode'
"
+expCode+
LogisticCode'
+expNo+"
}"
Map<
String,String>
params=newHashMap<
();
params.put("
RequestData"
urlEncoder(requestData,"
UTF-8"
));
EBusinessID"
EBusinessID);
RequestType"
1002"
StringdataSign=encrypt(requestData,AppKey,"
DataSign"
urlEncoder(dataSign,"
DataType"
2"
Stringresult=sendPost(ReqURL,params);
//根据公司业务处理返回的信息......
returnresult;
*XML方式查询订单物流轨迹
publicStringgetOrderTracesByXml()throwsException{
<
?
xmlversion=\"
1.0\"
encoding=\"
utf-8\"
?
>
+
"
Content>
OrderCode>
/OrderCode>
ShipperCode>
SF<
/ShipperCode>
LogisticCode>
589707398027<
/LogisticCode>
/Content>
1"
*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)throws
UnsupportedEncodingException,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(base64EncodeChars[b3&
0x3f]);
returnsb.toString();
}
PHP代码
php
//电商ID
defined('
EBusinessID'
)ordefine('
1237100);
//电商加密私钥,注意保管,不要泄漏
AppKey'
518a73d8-1f7f-441a-b644-33e77b49d846'
//请求url
ReqURL'
//api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx'
/**
functiongetOrderTracesByJson(){
$requestData="
SF'
589707398027'
$datas=array(
=>
EBusinessID,
RequestType'
1002'
RequestData'
urlencode($requestData),
DataType'
);
$datas['
DataSign'
]=encrypt($requestData,AppKey);
$result=sendPost(ReqURL,$datas);
//根据公司业务处理返回的信息......
return$result;
functiongetOrderTracesByXml(){
.
"
*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['
]=80;
echo$url_info['
];
$httpheader="
POST"
.$url_info['
path'
]."
HTTP/1.0\r\n"
$httpheader.="
Host:
host'
\r\n"
Content-Type:
application/x-www-form-urlencoded\r\n"
Content-Length:
.strlen($post_data)."
Connection:
close\r\n\r\n"
$httpheader.=$post_data;
$fd=fsockopen($url_info['
],$url_info['
]);
fwrite($fd,$httpheader);
$gets="
$headerFlag=true;
while(!
feof($fd)){
if(($header=@fgets($fd))&
($header=="
||$header=="
\n"
)){
break;
$gets.=fread($fd,128);
fclose($fd);
return$gets;
*@paramdata内容
*@paramappkeyAppkey
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 调用 案例 参考