You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Java代码获取HTTP响应头时Location头缺失?

Location响应头缺失的原因及解决办法
  • 核心原因:Java的URLConnection默认会自动跟随HTTP重定向(比如302跳转),你代码里获取的是最终跳转完成后的响应头,而包含Location的是初始跳转响应的头,被自动跳过了。

  • 解决方法:在打开连接后,禁用自动重定向功能:

    try {
        URL obj = new URL("https://app.armorcode.com/oauth2/authorization/okta-apptesting?email=manan.girdhar@armorcode.io");
        URLConnection conn = obj.openConnection();
        // 禁用自动跟随重定向
        conn.setInstanceFollowRedirects(false);
        Map<String, List<String>> map = conn.getHeaderFields();
    
        System.out.println("Printing Response Header...\n");
    
        for (Map.Entry<String, List<String>> entry : map.entrySet()) {
            System.out.println("Key : " + entry.getKey()
                    + " ,Value : " + entry.getValue());
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    
  • 补充说明:当服务器返回3xx状态码时,Location头用于指定跳转目标。默认行为下URLConnection会自动向Location指向的地址发起请求,此时你拿到的是第二次请求的响应头,自然看不到初始的Location。禁用自动重定向后,就能获取到包含Location的原始响应头,同时你可以自己根据状态码和Location头处理跳转逻辑。

内容的提问来源于stack exchange,提问作者Manan Girdhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:20:14