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

Groovy如何在请求头中发送授权令牌?已尝试两种方式均失败

在Groovy中给请求头添加授权令牌的正确方法

你要实现的是对应 curl -H 'Authorization: token this_is_my_token' this_is_my_url 的效果,之前的两种尝试都存在问题,下面是两种可行的实现方式:

方法一:使用Groovy原生URLConnection

这是无需额外依赖的简便方案:

def url = new URL("this_is_my_url")
def connection = url.openConnection() as HttpURLConnection
connection.setRequestProperty("Authorization", "token this_is_my_token")
connection.requestMethod = "GET"

// 读取并解析响应
def response = connection.inputStream.withReader { reader ->
    new JsonSlurper().parse(reader)
}

getList(response)

方法二:使用Apache HttpClient(修正你之前的写法)

如果项目依赖Apache HttpClient,需要修正语法错误并执行请求:

import org.apache.commons.httpclient.HttpClient
import org.apache.commons.httpclient.methods.GetMethod

def client = new HttpClient()
def getMethod = new GetMethod("this_is_my_url")
// 授权头需传入完整字符串
getMethod.setRequestHeader("Authorization", "token this_is_my_token")

// 执行请求
client.executeMethod(getMethod)

// 读取并解析响应
def response = new JsonSlurper().parse(getMethod.getResponseBodyAsStream())

getList(response)
// 释放资源
getMethod.releaseConnection()

之前代码的问题说明

  • 第一种URL参数传token的方式:若接口仅接受Authorization头的认证方式,这种参数传递自然无效。
  • 第二种GetMethod写法的问题:
    1. token this_is_my_token未加引号,不是合法的字符串参数;
    2. 未调用client.executeMethod(getMethod)执行请求,直接读取流无法获取有效响应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:35:36