From 6367f20b7a8fe23d7a547b83f1e30321b84d09f2 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期二, 02 七月 2019 09:38:35 +0800 Subject: [PATCH] 商品详情对象修改 --- fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java | 72 +++++++++++++++++++++++++++++++++-- 1 files changed, 67 insertions(+), 5 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java index 81e4d59..e3175e1 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java @@ -12,6 +12,9 @@ import java.util.Set; import java.util.TreeMap; +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpException; +import org.apache.commons.httpclient.methods.GetMethod; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; @@ -60,11 +63,47 @@ static Gson gson = new Gson(); + private static String get(String url) { + HttpClient client = new HttpClient(); + try { + client.getHttpConnectionManager().getParams().setConnectionTimeout(5000); + client.getHttpConnectionManager().getParams().setSoTimeout(5000); + GetMethod method = new GetMethod(url); + client.executeMethod(method); + return method.getResponseBodyAsString(); + } catch (HttpException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return ""; + } + + private static String request(String url) { + String result = null; + + while (result == null) { + try { + result = get(url); + if ((result != null && result.startsWith("<html>")) || StringUtil.isNullOrEmpty(result)) + result = null; + } catch (Exception e) { + try { + Thread.sleep(400); + } catch (InterruptedException e1) { + } + } + } + + return result; + } + public static DaTaoKeApiResult goodsList(int page) { List<DaTaoKeDetail> list = new ArrayList<>(); String url = String.format("http://api.dataoke.com/index.php?r=Port/index&type=total&appkey=%s&v=2&page=%s", Math.random() > 0.5 ? API_KEY : API_KEY_2, page + ""); - String result = HttpUtil.get(url); + String result = request(url); + JSONObject resultJson = JSONObject.fromObject(result); System.out.println(resultJson); JSONArray array = resultJson.optJSONArray("result"); @@ -144,7 +183,7 @@ params.put("version", "v1.0.0"); params.put("appKey", app.getAppKey()); params.put("pageSize", 200 + ""); -// params.put("sort", "1"); + // params.put("sort", "1"); if (!StringUtil.isNullOrEmpty(pageId)) { params.put("pageId", pageId); } @@ -285,16 +324,38 @@ return daTaoKeGoodsResult; } - public static DaTaoKeGoodsResult search(String key, List<Integer> cidList, int page, int pageSize, int sort) { + public static DaTaoKeDetailV2 getGoodsDetail(Long id) { + TaoKeAppInfo app = getRandomApp(); + DaTaoKeGoodsResult daTaoKeGoodsResult = new DaTaoKeGoodsResult(); + Map<String, String> params = new TreeMap<>(); + params.put("version", "v1.0.0"); + params.put("appKey", app.getAppKey()); + params.put("id", id + ""); + params.put("sign", getSign(params, app.getAppSecret())); + String result = HttpUtil.get("https://openapi.dataoke.com/api/goods/get-goods-details", params, + new HashMap<>()); + JSONObject json = JSONObject.fromObject(result); + JSONObject dataJson = json.optJSONObject("data"); + if (dataJson != null) { + return gson.fromJson(dataJson.toString(), DaTaoKeDetailV2.class); + } + return null; + } + + public static DaTaoKeGoodsResult search(String key, List<Integer> cidList, BigDecimal priceLowerLimit, + BigDecimal priceUpperLimit, int page, int pageSize, int sort) { TaoKeAppInfo app = getRandomApp(); DaTaoKeGoodsResult daTaoKeGoodsResult = new DaTaoKeGoodsResult(); Map<String, String> params = new TreeMap<>(); params.put("version", "v1.0.0"); params.put("appKey", app.getAppKey()); - params.put("pageSize", 200 + ""); + params.put("pageSize", pageSize + ""); params.put("pageId", page + ""); - + if (priceLowerLimit != null) + params.put("priceLowerLimit", priceLowerLimit + ""); + if (priceUpperLimit != null) + params.put("priceUpperLimit", priceUpperLimit + ""); String cids = ""; if (cidList != null && cidList.size() > 0) for (Integer cid : cidList) { @@ -311,6 +372,7 @@ params.put("sign", getSign(params, app.getAppSecret())); String result = HttpUtil.get("https://openapi.dataoke.com/api/goods/get-dtk-search-goods", params, new HashMap<>()); + JSONObject json = JSONObject.fromObject(result); JSONObject dataJson = json.optJSONObject("data"); if (dataJson != null) { -- Gitblit v1.8.0