admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
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;
@@ -557,6 +560,10 @@
     * @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/");
    }
@@ -564,7 +571,8 @@
        if (url == null)
            return null;
        String link = url;
        if (isPDDLink(link)) {// 拼多多的短链
        if (isPDDShortLink(link)) {// 拼多多的短链
            HttpClient client = new HttpClient();
            client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
            PostMethod pm = new PostMethod(link);
@@ -658,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();
        }
    }
}