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 @   Ranger-dev  阅读(56)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示