hutool HttpUtil bug 不发送Origin头

背景

对接一个第三方接口,对方接口验证请求头必须带上Origin等于xxx,否则不会返回数据。当我们使用hutool的HttpUtil发送请求,抓包发现这个请求头没有带上,导致接口总是返回空数据

解决方案

使用okhttp client

<dependency>
     <groupId>com.squareup.okhttp3</groupId>
     <artifactId>okhttp</artifactId>
     <version>4.9.3</version>
</dependency>

 OkHttpClient client = new OkHttpClient();
        // 创建一个请求
        Request.Builder builder = new Request.Builder().url("http://xxxx/v1/query/args");
        Map<String, String> header = new HashMap<>();
        header.put("Origin", "xxx");
        header.put("Referer", "xxx");
        header.put("User-Agent", "1");
        if (CollUtil.isNotEmpty(header)) {
            for (Map.Entry<String, String> entry : header.entrySet()) {
                builder.header(entry.getKey(), entry.getValue());
            }
        }
        Request request = builder.build();
        // 发起请求并获取响应
        try (Response response = client.newCall(request).execute()) {
            // 打印响应体的内容
            return Objects.requireNonNull(response.body()).string();
        } catch (Exception e) {
            return "";
        }
posted @ 2024-11-04 16:04  Ranger-dev  阅读(21)  评论(0编辑  收藏  举报