【工具】JAVA请求头Headers工具随机 生成UA 解析headers为map

【工具】JAVA请求头Headers工具随机 生成UA 解析headers为map

随机生成UA

成品

Mozilla/5.0 (Linux; Android 11; Mi 14 Build/TKQ1.221114.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.6827.294 Mobile Safari/537.36 XWEB/1220067 MMWEBSDK/20240301 MMWEBID/4001 MicroMessenger/8.0.48.2580(0x28003036) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64

随机生成UA用法

     UA = Mozilla/5.0 (Linux; Android {Android版本}; {Android手机型号} Build/TKQ1.221114.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/{Chrome内核版本} Mobile Safari/537.36 XWEB/1220067 MMWEBSDK/20240301 MMWEBID/4001 MicroMessenger/8.0.48.2580(0x28003036) WeChat/arm64 Weixin NetType/{NetType} Language/zh_CN ABI/arm64

     UA = StrUtil.format(UA, 随机Ua参数);

 解析headers为map

     用法
     """
     Host: work.weixin.qq.com
     sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Android WebView";v="122"
     sec-ch-ua-mobile: ?1
     sec-ch-ua-platform: "Android"
     upgrade-insecure-requests: 1
     user-agent: Mozilla/5.0 (Linux; Android {Android版本}; {Android手机型号} Build/TKQ1.221114.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/{Chrome内核版本} Mobile Safari/537.36 XWEB/1220067 MMWEBSDK/20240301 MMWEBID/4001 MicroMessenger/8.0.48.2580(0x28003036) WeChat/arm64 Weixin NetType/{NetType} Language/zh_CN ABI/arm64
     x-requested-with: com.tencent.mm
     sec-fetch-site: none
     sec-fetch-mode: navigate
     sec-fetch-user: ?1
     sec-fetch-dest: document
     accept-encoding: gzip, deflate, br
     accept-language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
     cookie: wwrtx.i18n_lan=zh%2Ccn
     """

     Map<String, String> 请求头map = WToolHeaders.解析请求头Headers(headers);

Headers工具类完整代码



import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.util.RandomUtil;
import org.dromara.hutool.json.JSONObject;
import org.dromara.hutool.json.JSONUtil;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * http请求头工具
 */
public class WToolHeaders {

    private static List<String> Android版本List = ListUtil.of(
            "10", "11", "12", "13", "14"
    );

    private static List<String> Android手机型号 = ListUtil.of(
            "Mi 8",
            "Mi 9",
            "Mi 10",
            "Mi 11",
            "Mi 12",
            "Mi 13",
            "Mi 14"
            ,"PBEM00"
    );

    private static List<String> NetType = ListUtil.of(
            "4G"
            ,"5G"
            ,"WIFI"
    );


    /**
     * 随机生成 UA 用法
     UA = Mozilla/5.0 (Linux; Android {Android版本}; {Android手机型号} Build/TKQ1.221114.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/{Chrome内核版本} Mobile Safari/537.36 XWEB/1220067 MMWEBSDK/20240301 MMWEBID/4001 MicroMessenger/8.0.48.2580(0x28003036) WeChat/arm64 Weixin NetType/{NetType} Language/zh_CN ABI/arm64

     UA = StrUtil.format(UA, 随机Ua参数);


     *
     *
     * @return
     */
    public static JSONObject get随机Ua参数(){

        JSONObject entries = JSONUtil.ofObj();
        entries.set("Android版本", getAndroid版本());
        entries.set("Android手机型号", getAndroid手机型号());
        entries.set("Chrome内核版本", getChrome内核版本());
        entries.set("NetType", getNetType());

        return entries;
    }


    public static String getAndroid版本(){
        int i = RandomUtil.randomInt(0, Android版本List.size());
        return Android版本List.get(i);
    }

    public static String getAndroid手机型号(){
        int i = RandomUtil.randomInt(0, Android手机型号.size());
        return Android手机型号.get(i);
    }

    public static String getNetType(){
        int i = RandomUtil.randomInt(0, NetType.size());
        return NetType.get(i);
    }

    public static String getChrome内核版本(){

        int A = RandomUtil.randomInt(88, 126);
        int B = RandomUtil.randomInt(0, 10);
        int C = RandomUtil.randomInt(1000, 9999);
        int D = RandomUtil.randomInt(1, 999);

        return StrUtil.format("{}.{}.{}.{}", A, B, C, D);
    }


    /**
     用法
     """
     Host: work.weixin.qq.com
     sec-ch-ua: "Chromium";v="122", "Not(A:Brand";v="24", "Android WebView";v="122"
     sec-ch-ua-mobile: ?1
     sec-ch-ua-platform: "Android"
     upgrade-insecure-requests: 1
     user-agent: Mozilla/5.0 (Linux; Android {Android版本}; {Android手机型号} Build/TKQ1.221114.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/{Chrome内核版本} Mobile Safari/537.36 XWEB/1220067 MMWEBSDK/20240301 MMWEBID/4001 MicroMessenger/8.0.48.2580(0x28003036) WeChat/arm64 Weixin NetType/{NetType} Language/zh_CN ABI/arm64
     x-requested-with: com.tencent.mm
     sec-fetch-site: none
     sec-fetch-mode: navigate
     sec-fetch-user: ?1
     sec-fetch-dest: document
     accept-encoding: gzip, deflate, br
     accept-language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
     cookie: wwrtx.i18n_lan=zh%2Ccn
     """

     Map<String, String> 请求头map = WToolHeaders.解析请求头Headers(headers);

     * @param headers
     * @return
     */
    public static Map<String, String> 解析请求头Headers(String headers){

        Map<String, String> map = new HashMap<>();

        String[] split = headers.split("\n");

        for (String s : split) {

            String[] split1 = s.split(":");
            map.put(split1[0].trim(), split1[1].trim());
        }

        return map;
    }



}

依赖

<!-- https://mvnrepository.com/artifact/org.dromara.hutool/hutool-all -->
<dependency>
    <groupId>org.dromara.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>6.0.0-M12</version>
</dependency>


 

 java http 请求头 爬虫 抓包

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Java中使用RestTemplate设置请求头headers,你可以使用`HttpHeaders`类来创建和设置请求头。下面是一个示例代码: ```java import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.web.client.RestTemplate; public class Main { public static void main(String[] args) { String url = "http://example.com/api"; // 创建RestTemplate对象 RestTemplate restTemplate = new RestTemplate(); // 创建HttpHeaders对象,并设置Content-Type为application/json HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); // 创建HttpEntity对象,并设置请求头 HttpEntity<String> entity = new HttpEntity<>(headers); // 发送GET请求,获取ResponseEntity对象 ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class); // 获取响应数据 String responseBody = response.getBody(); System.out.println(responseBody); } } ``` 在上述示例中,我们通过创建一个`HttpHeaders`对象并设置`Content-Type`为`application/json`来设置请求头。然后,我们创建一个`HttpEntity`对象,并将之前创建的`HttpHeaders`对象作为参数传递给它。接下来,我们使用`RestTemplate`的`exchange`方法发送带有自定义请求头的GET请求,并获取到响应数据。 你可以根据自己的需求修改请求方法、请求体等。希望对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是Superman丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值