鳥は-javaドッキングに急行単一のクエリインターフェイスを限定されるものではなく、

無制限の急行物流軌道クエリインターフェイス無料ドッキング、原理は注文内容が物流データへの更新、リアルタイムのアクセスを追跡する場合、インターフェイスにリアルタイム監視のためのインタフェースの受注を購読、データをフォーマットし、到着の運送状予定時刻を計算しています物流状況の後に、現在の位置データとプロセス全体の他の都市では、プッシュバック。受注後の監視の終わりまで。電気・プロバイダーといくつかのシステムソフトウェアに適して。

•シナリオ

①バイヤーの物流クエリ:追跡、小包の進捗状況、予想配達時間、配達人の連絡先情報。

②売り手の物流追跡:スーパーエリアかどうかは、拒否された作品、納期を回します

③プラットフォームの監視と管理:偽の取引を監視、売り手は領収書の時間を確認するために、顧客に合わせた出荷します。

javademo例:

輸入java.io.BufferedReader;
インポートにjava.io.IOException; 
輸入java.io.InputStreamReader。
輸入java.io.OutputStreamWriterが、
輸入java.io.UnsupportedEncodingException。
インポートのjava.net.HttpURLConnection;
インポートのjava.net.URL;
輸入java.net.URLEncoder。
輸入java.util.HashMapを;
輸入java.util.Map;
輸入com.sun.org.apache.xerces.internal.impl.dv.util.Base64。
輸入java.security.MessageDigestの; 

パブリック クラスKdGoldAPIDemo { 
    
    // 电商ID 
    プライベートEBusinessID =文字列「1237100」;    
     // 電気・プロバイダー秘密鍵暗号、宅配便の鳥を提供し、世話をする、(再アプリケーションのIDであることを)漏れない
    プライベート文字列のAppKey =「518a73d8-1f7f-441A-b644-33e77b49d846」;    
     // リクエストURL 
    プライベート文字列reqURL = "http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx" ;     
 
    / ** 
     * JSON実施形態加入情報ストリーム
     * @throws 例外 
      * / 
    パブリック文字列orderTracesSubByJson()がスロー例外{ 
        文字列requestData =「{ 'コード': 'SF'、 'アイテム':[ "+ 
                           " { 'いいえ': '909 261 024 507'、 'のBk': 'テスト'}、 "+
                           "{ 'いいえ' '589554393102'、 'のBk': 'テスト'}、" + 
                           "{ 'いいえ' '589522101958'、 'のBk': 'テスト'}、" + 
                           「{ 'いいえ'「909198822942 」、 'のBk': 'テスト'} "+ 
                           "]}" 
        
        地図 <文字列、文字列>のparams = 新しい HashMapの<文字列、文字列> (); 
        params.put( "RequestData"のURLEncoder(requestData、 "UTF-8" )); 
        params.put( "EBusinessID" 、EBusinessID)。
        params.put( "RequestType"、 "1005" ); 
        ストリングdataSign =暗号化(requestData、のAppKey、 "UTF-8" )。
        params.put( "DataSign"のURLEncoder(dataSign、 "UTF-8" ));
        params.put( "データ型"、 "2" ); 
        
        文字列の結果 = sendPost(reqURL、のparams);     
        
        // 情報処理事業......返される
        
        リターン結果; 
    } 
    
    / ** 
     * XMLストリームモード情報購読
     * @throws 例外 
      * / 
    パブリック文字列orderTracesSubByXml()がスロー例外を{ 
        文字列requestData = "<?xmlのバージョン= \" 1.0 \ "エンコーディング= \" UTF-8 \ "?>" + 
                            "<コンテンツ>" + 
                            「<コード> SF </コード> "++ 
                            "<いいえ> 909261024507 </いいえ>" ++ 
                            "<商品>" +
                            "<商品>" + 
                            "<Bkの>テスト</ Bkの>" + 
                            "</商品>" + 
                            "の<item>" + 
                            "<なし> 909261024507 </いいえ>" + 
                            「<Bkの>テスト</ Bkの> 「+ 
                            "</商品>" + 
                            "</商品>" + 
                            "</コンテンツ>" ; 
        
        地図 <文字列、文字列>のparams = 新しい HashMapの<文字列、文字列> (); 
        params.put( "RequestData"、URLEncoder(requestData、 "UTF-8" )); 
        params.put( "EBusinessID" 、EBusinessID)。
        params.put( "RequestType"、 "1005" 
        の文字列dataSign =暗号化(requestData、のAppKey、 "UTF-8" ); 
        params.put( "DataSign"のURLEncoder(dataSign、 "UTF-8" )); 
        params.put ( "データ型"、 "1" )、
        
        文字列結果 = sendPost(ReqURL、paramsは);     
        
        // 根据公司业务处理返回的信息...... 
        
        戻り結果。
    } 
        
    / ** 
     * MD5暗号化
     * @paramのSTRコンテンツ        
     * @param 文字セット符号化
     * @throws 例外 
      * / 
    (@SuppressWarningsを"未使用" プライベートストリングMD5(文字列str、文字列の文字セット)がスロー{例外
        するMessageDigest MD = MessageDigest.getInstance( "MD5" )。
        md.update(str.getBytes(文字セット))。
        バイト []結果= md.digest()。
        StringBufferのSB = 新しい StringBufferの(32 )。
        以下のためにint型 i = 0; iはresult.length <; iは++ ){
             int型のval = [I]&0xffのをもたらしますもし(ヴァル<= 0xFの){ 
                sb.append( "0" )。
            } 
            sb.append(Integer.toHexString(ヴァル))。
        } 
        を返す。sb.toString()toLowerCaseメソッドを()。
    } 
    
    / ** 
     * BASE64编码
     * @param STR内容        
     * @param 文字セット编码方式
     * @throws にUnsupportedEncodingException 
      * / 
    プライベート文字列のBASE64(文字列strは、文字列の文字セット)がスローにUnsupportedEncodingException { 
        エンコードされた文字列を = Base64.encode(str.getBytes(文字セット) );
        返すエンコードされました。    
    }     
    
    @SuppressWarnings( "未使用" プライベートは、文字列のURLEncoder(文字列str、文字列の文字セット)スローにUnsupportedEncodingException { 
        文字列結果 = URLEncoder.encode(STR、文字セットを)。
        戻り値の結果; 
    } 
    
    / ** 
     *电商ログイン签名生成
     * @paramのコンテンツ内容    
     * @param keyValueのAPPKEY   
     * @param 文字セット编码方式
     * @throws にUnsupportedEncodingException、例外
     * @return DataSign签名
      * / 
    @SuppressWarnings( "未使用" プライベート文字列の暗号化(文字列の内容は、文字列keyValueの、文字列の文字セット)がスローされますUnsupportedEncodingException、例外
    { 
        IF(keyValueの=!ヌル
        { 
            返すのBase64(MD5(コンテンツ+ keyValueの、文字セット)、文字セットを); 
        } 
        を返すのBase64(MD5(コンテンツ、文字セット)、文字セットを); 
    } 
    
     / ** 
     *は、指定されたURLを送信POSTメソッドリクエスト      
     * @param URL送信要求URL     
     * @param セットのparamsリクエストパラメータ      
     * @returnの応答結果、リモートリソース
      * / 
    @SuppressWarnings( "未使用" プライベート文字列sendPost(文字列URL、地図<文字列、文字列>params){
        OutputStreamWriterアウト = nullを
        中BufferedReaderの = nullを
        StringBuilderの結果 = 新しいStringBuilderの(); 
        試す{ 
            URL RealURLは = 新しいURL(URL)を、
            HttpURLConnectionのCONN = (HttpURLConnectionの)realUrl.openConnection();
            // 发送POST请求必须设置如下两行 
            conn.setDoOutput(真の); 
            conn.setDoInput(真の);
            // POST方法 
            conn.setRequestMethod( "POST");
            // 设置通用的请求属性 
            conn.setRequestProperty( "* / *"、 "受け入れます" ); 
            conn.setRequestProperty(「接続」、「キープアライブ」)。
            conn.setRequestProperty( "ユーザーエージェント"  "Mozillaの/ 4.0(互換; MSIE 6.0; Windows NTの5.1; SV1)" ); 
            conn.setRequestProperty( "のContent-Type"、 "アプリケーション/ x-www-form-urlencodedで" )。
            conn.connect(); 
            // 获取URLConnectionの对象对应的输出流 
            アウト= 新しいのOutputStreamWriter(conn.getOutputStream()、 "UTF-8" );
            //
            もし(!のparams = ヌル){ 
                  StringBuilderのPARAM = 新しいStringBuilderの(); 
                  (のMap.Entry <文字列、文字列> エントリ:params.entrySet()){
                       場合(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()); 
            } 
            // フラッシュバッファリングされた出力ストリーム
            out.flush();
             // レスポンスのURL読み取るようにBufferedReaderの入力ストリームを定義 
            =で新しい新しいをBufferedReader(
                     新しい新しい InputStreamReaderの(conn.getInputStream()、 "UTF-8" )); 
            文字列のライン、
            しばらく((=ラインで。 readLine())!= NULL ){ 
                result.append(ライン); 
            } 
        } キャッチ(例外E){             
            e.printStackTrace(); 
        } 
        // 最終的に出力ストリームを閉じるためにブロックを使用し、入力ストリームの
        最後に{
             試み{
                 IF(OUTが!= ヌル){ 
                    out.close(); 
                } 
                IF(IN =!ヌル) { 
                    in.close(); 
                } 
            } 
            キャッチ(IOExceptionをEX){ 
                ex.printStackTrace(); 
            } 
        } 
        戻りresult.toStringを(); 
    } 
}

 

おすすめ

転載: www.cnblogs.com/kdn2019/p/11497677.html