基于java的快遞單號(hào)自動(dòng)識(shí)別api接口代碼實(shí)例_第1頁(yè)
基于java的快遞單號(hào)自動(dòng)識(shí)別api接口代碼實(shí)例_第2頁(yè)
基于java的快遞單號(hào)自動(dòng)識(shí)別api接口代碼實(shí)例_第3頁(yè)
基于java的快遞單號(hào)自動(dòng)識(shí)別api接口代碼實(shí)例_第4頁(yè)
基于java的快遞單號(hào)自動(dòng)識(shí)別api接口代碼實(shí)例_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于java的快遞單號(hào)自動(dòng)識(shí)別api接口代碼實(shí)例import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .URL;import .URLEncoder;import java.security.MessageDigest;import java.util

2、.HashMap;import java.util.Map; /* 快遞鳥(niǎo)單號(hào)識(shí)別接口* * ID和Key請(qǐng)到官網(wǎng)申請(qǐng):*/public class KdApiOrderDistinguish /DEMOpublic static void main(String args) KdApiOrderDistinguish api = new KdApiOrderDistinguish();try String result = api.getOrderTracesByJson(3967950525457);System.out.print(result); catch (Exception e)

3、 e.printStackTrace();/電商IDprivate String EBusinessID=請(qǐng)到快遞鳥(niǎo)官網(wǎng)申請(qǐng)/電商加密私鑰,快遞鳥(niǎo)提供,注意保管,不要泄漏private String AppKey=請(qǐng)到快遞鳥(niǎo)官網(wǎng)申請(qǐng)/請(qǐng)求urlprivate String ReqURL=http:/api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx; /* Json方式 單號(hào)識(shí)別* throws Exception */public String getOrderTracesByJson(String expNo) throws Exceptio

4、nString requestData= LogisticCode: + expNo + ;Map params = new HashMap();params.put(RequestData, urlEncoder(requestData, UTF-8);params.put(EBusinessID, EBusinessID);params.put(RequestType, 2002);String dataSign=encrypt(requestData, AppKey, UTF-8);params.put(DataSign, urlEncoder(dataSign, UTF-8);para

5、ms.put(DataType, 2);String result=sendPost(ReqURL, params); /根據(jù)公司業(yè)務(wù)處理返回的信息.return result;/* MD5加密* param str 內(nèi)容 * param charset 編碼方式* throws Exception */SuppressWarnings(unused)private String MD5(String str, String charset) throws Exception MessageDigest md = MessageDigest.getInstance(MD5);md.update

6、(str.getBytes(charset);byte result = md.digest();StringBuffer sb = new StringBuffer(32);for (int i = 0; i result.length; i+) int val = resulti & 0xff;if (val = 0xf) sb.append(0);sb.append(Integer.toHexString(val);return sb.toString().toLowerCase();/* base64編碼* param str 內(nèi)容 * param charset 編碼方式* thro

7、ws UnsupportedEncodingException */private String base64(String str, String charset) throws UnsupportedEncodingExceptionString encoded = base64Encode(str.getBytes(charset);return encoded; SuppressWarnings(unused)private String urlEncoder(String str, String charset) throws UnsupportedEncodingException

8、String result = URLEncoder.encode(str, charset);return result;/* 電商Sign簽名生成* param content 內(nèi)容 * param keyValue Appkey * param charset 編碼方式* throws UnsupportedEncodingException ,Exception* return DataSign簽名*/SuppressWarnings(unused)private String encrypt (String content, String keyValue, String chars

9、et) throws UnsupportedEncodingException, Exceptionif (keyValue != null)return base64(MD5(content + keyValue, charset), charset);return base64(MD5(content, charset), charset);/* 向指定 URL 發(fā)送POST方法的請(qǐng)求 * param url 發(fā)送請(qǐng)求的 URL * param params 請(qǐng)求的參數(shù)集合 * return 遠(yuǎn)程資源的響應(yīng)結(jié)果*/SuppressWarnings(unused)private String

10、 sendPost(String url, Map params) OutputStreamWriter out = null;BufferedReader in = null; StringBuilder result = new StringBuilder(); try URL realUrl = new URL(url);HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection();/ 發(fā)送POST請(qǐng)求必須設(shè)置如下兩行conn.setDoOutput(true);conn.setDoInput(true);/ P

11、OST方法conn.setRequestMethod(POST);/ 設(shè)置通用的請(qǐng)求屬性conn.setRequestProperty(accept, */*);conn.setRequestProperty(connection, Keep-Alive);conn.setRequestProperty(user-agent,Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1);conn.setRequestProperty(Content-Type, application/x-www-form-urlencoded);conn.con

12、nect();/ 獲取URLConnection對(duì)象對(duì)應(yīng)的輸出流out = new OutputStreamWriter(conn.getOutputStream(), UTF-8);/ 發(fā)送請(qǐng)求參數(shù) if (params != null) StringBuilder param = new StringBuilder(); for (Map.Entry entry : params.entrySet() if(param.length()0)param.append(&); param.append(entry.getKey();param.append(=);param.append(en

13、try.getValue(); /System.out.println(entry.getKey()+:+entry.getValue();/System.out.println(param:+param.toString();out.write(param.toString();/ flush輸出流的緩沖out.flush();/ 定義BufferedReader輸入流來(lái)讀取URL的響應(yīng)in = new BufferedReader(new InputStreamReader(conn.getInputStream(), UTF-8);String line;while (line = in

14、.readLine() != null) result.append(line); catch (Exception e) e.printStackTrace();/使用finally塊來(lái)關(guān)閉輸出流、輸入流finallytryif(out!=null)out.close();if(in!=null)in.close();catch(IOException ex)ex.printStackTrace();return result.toString();private static char base64EncodeChars = new char A, B, C, D, E, F, G, H,

15、 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, +, / ; public static String base64Encode(byte data) StringBuffer sb = new StringBuffer(); int len = data.length; int i = 0; int b1, b2, b3; while (i 2); sb.append(base64EncodeChars(b1 & 0x3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論