From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java | 75 +++++++++++++++++++++++++++++++++++-- 1 files changed, 71 insertions(+), 4 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java index c48ed5c..6e6dd03 100644 --- a/fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java +++ b/fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java @@ -8,7 +8,9 @@ import java.math.BigDecimal; import java.net.URLEncoder; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -20,6 +22,7 @@ import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; +import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -99,13 +102,14 @@ return BigDecimalUtil.getWithNoZera(money).setScale(2); } + /** * 璁$畻鍟嗗搧鍒稿悗浠凤紝娌℃湁鍒稿垯杩斿洖鍘熶环 * * @param goodsBrief * @return */ - public static BigDecimal getQuanPrice(PDDGoodsDetail goods) { + public static BigDecimal getCouponPrice(PDDGoodsDetail goods) { BigDecimal hundred = new BigDecimal(100); BigDecimal price = MoneyBigDecimalUtil.div(new BigDecimal(goods.getMinGroupPrice()), hundred); Boolean hasCoupon = goods.getHasCoupon(); @@ -549,11 +553,26 @@ } + /** + * 鏄惁涓烘嫾澶氬鐨勯摼鎺� + * + * @param link + * @return + */ + public static boolean isPDDLink(String link) { + return link.contains("://p.pinduoduo.com/") || link.contains("yangkeduo.com/"); + } + + public static boolean isPDDShortLink(String link) { + return link.contains("://p.pinduoduo.com/"); + } + public static String getPDDGoodsId(String url) { if (url == null) return null; String link = url; - if (link.contains("://p.pinduoduo.com/")) {// 鎷煎澶氱殑鐭摼 + + if (isPDDShortLink(link)) {// 鎷煎澶氱殑鐭摼 HttpClient client = new HttpClient(); client.getHttpConnectionManager().getParams().setConnectionTimeout(5000); PostMethod pm = new PostMethod(link); @@ -647,11 +666,59 @@ } public static String getCustomParams(Long uid) { - return uid + "_" + TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyyMMdd"); + return uid + "" + TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyyMMdd"); } public static String getUidFromCustomParams(String params) { - return params.split("_")[0]; + if (params.contains("_")) { + return params.split("_")[0]; + } else { + if (params.length() > 12) { + return params.substring(0, params.length() - 8); + } else { + return params; + } + } + } + + public static void main(String[] args) { + String link = "https://mobile.yangkeduo.com/goods.html?ps=Xy6iPwbIKZ"; + HttpClient client = new HttpClient(); + client.getHttpConnectionManager().getParams().setConnectionTimeout(5000); + GetMethod pm = new GetMethod(link); + pm.setRequestHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"); + //pm.setRequestHeader("Sec-Fetch-Site","same-origin"); + pm.setRequestHeader("Upgrade-Insecure-Requests","1"); + pm.setRequestHeader("Referer","https://mobile.yangkeduo.com/goods.html?ps=Xy6iPwbIKZ"); + //pm.setRequestHeader("Priority","u=0, i"); + pm.setRequestHeader(":authority","mobile.yangkeduo.com"); + //pm.setRequestHeader("Cookie","api_uid=CkilZ2ZPIkIbkQBWBOpQAg==; _nano_fp=Xpman5TjX5gYX5XyX9_~Ae2Gbs0pL8h6jt_96NPO; webp=1; jrpl=KlZOYnFydoAazGlzTaZsZppQwiLSz3OM; njrpl=KlZOYnFydoAazGlzTaZsZppQwiLSz3OM; dilx=C2L6L~2oOr3ElrZKZ4_YW; pdd_vds=gaeAuFISuzLSnVdWuVbgspGgwjOXGqdpNMuzbXyFeJOXypsMOMlkLJnMGpOH"); + pm.setRequestHeader("Sec-Ch-Ua","\"Chromium\";v=\"124\", \"Google Chrome\";v=\"124\", \"Not-A.Brand\";v=\"99\""); + pm.setRequestHeader("Sec-Ch-Ua-Mobile","?0"); + pm.setRequestHeader("Sec-Ch-Ua-Platform","\"Windows\""); + pm.setRequestHeader("Sec-Fetch-Dest","document"); + pm.setRequestHeader("Sec-Fetch-Mode","navigate"); +// pm.setRequestHeader("",""); +// pm.setRequestHeader("",""); + + try { + client.executeMethod(pm); + Header[] headers = pm.getRequestHeaders(); + for(Header header:headers ){ + + System.out.println(header.toString()); + } + Header location = pm.getResponseHeader("Location"); + if (location != null) { + link = location.getValue(); + System.out.println(link); + } + System.out.println(pm.getResponseBodyAsString()); + } catch (HttpException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } } } -- Gitblit v1.8.0