日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

将JAVA API接口 改写成 Python

發布時間:2023/12/19 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 将JAVA API接口 改写成 Python 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

AsinSeedApi

不寫注釋的程序員-加密

將JAVA API接口 改寫成 Python

JAVA

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import java.io.IOException;
import java.security.MessageDigest;

public class AsinSeedApiTest {
    private static final char[] HEX_CHAR = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
    private static final String PARTNER_CODE = "xxx";
    private static final String PARTNER_SECRET_KEY = "xxx-xxx-xxx-xxx";

    private static String byteArrayToHexString(byte[] byteArray) {
        StringBuffer resultSb = new StringBuffer();
        for (int i = 0; i < byteArray.length; i++) {
            int n = byteArray[i];
            n = n < 0 ? n + 256 : n;
            resultSb.append(HEX_CHAR[n / 16]).append(HEX_CHAR[n % 16]);
        }
        return resultSb.toString();
    }

    private static String encode(String origin) {
        String output = null;
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            output = byteArrayToHexString(md.digest(origin.getBytes("UTF-8")));
        } catch (Throwable e) {
            e.printStackTrace();
        }
        return null != output ? output.substring(0, 12) : "";
    }

    public static void main(String[] args) {
        String marketplace = "US";
        String asin = "B017H39S5U";
        String partner = PARTNER_CODE;
        String qid = marketplace + "_" + asin + "_" + PARTNER_SECRET_KEY;
        qid = encode(qid);
        String urlStr = "https://www.asinseed.com/api/" + marketplace + "/" + asin + "/" + partner + "/" + qid;
        HttpClient httpClient = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet(urlStr);
        try {
            HttpResponse response = httpClient.execute(httpGet);
            HttpEntity responseEntity = response.getEntity();
            if (null != responseEntity) {
                String responseJsonStr = EntityUtils.toString(responseEntity, "UTF-8");
                JSONObject result = JSON.parseObject(responseJsonStr);
                String code = result.getString("code");
                if ("ok".equalsIgnoreCase(code)) {
                   JSONObject data = result.getJSONObject("data");
                   JSONArray keywords = data.getJSONArray("keywords");
                   //TODO your custom business logic
                   System.out.println(keywords.toJSONString());
                } else {
                   String errMsg = result.get("message").toString();
                   //TODO handle the error msg from api
                   System.out.println("errorMs=>" + errMsg);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Python

class AsinSeedApiTest:
    HEX_CHAR = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
    PARTNER_CODE = PARTNER_CODE
    PARTNER_SECRET_KEY = PARTNER_SECRET_KEY

    @classmethod
    def byteArrayToHexString(cls, byteArray):
        resultSb = ''
        for n in byteArray:
            n = n + 256 if n < 0 else n
            resultSb += (cls.HEX_CHAR[n // 16])
            resultSb += (cls.HEX_CHAR[n % 16])
        return resultSb

    @classmethod
    def encode(cls, origin):
        m = hashlib.md5()
        m.update(origin.encode('utf-8'))
        output = m.hexdigest()
        return output[0:12] if output else ""

    @classmethod
    def main(cls, marketplace, asin):
        marketplace = marketplace
        asin = asin
        partner = cls.PARTNER_CODE
        qid = marketplace + "_" + asin.upper() + "_" + cls.PARTNER_SECRET_KEY  # ASIN
        qid = cls.encode(qid)
        urlStr = "https://www.asinseed.com/api/" + marketplace + "/" + asin + "/" + partner + "/" + qid  # ASIN url
        keyWord_urlStr = "https://www.asinseed.com/api/" + marketplace + "/" + partner + "/" + qid + '?keyword=' + asin  # 關鍵詞 url

        return urlStr, keyWord_urlStr

總結

以上是生活随笔為你收集整理的将JAVA API接口 改写成 Python的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。