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

Groovy中执行Curl请求获取XML文件时的问题求助

问题原因

你遇到的错误是因为Groovy的String.execute()方法会直接按空格拆分命令参数,不会像终端shell那样解析双引号。原代码里的"Accept: application/xml"被拆成了"Accept:、application/xml"两个独立参数,导致curl误将application当作主机名,抛出无法解析的错误,同时因为命令执行失败,自然得不到正确的XML输出。

解决方法

改用列表形式传递命令参数,每个参数作为列表的独立元素,避免空格和引号带来的解析问题,同时要读取命令的输出和错误流来获取结果:

def path = "你的目标URL"
def process = ['curl', '-H', 'Accept:  application/xml', path].execute()
process.waitFor()

// 获取标准输出(XML内容)
def xmlOutput = process.inputStream.text
// 获取错误输出
def errorOutput = process.errorStream.text

println "XML输出:\n${xmlOutput}"
println "错误信息:\n${errorOutput}"
补充说明
  • 列表形式的参数传递会让Groovy正确识别每个命令参数,curl能正常接收Accept头信息。
  • 必须读取inputStream和errorStream,否则可能出现缓冲区满导致进程阻塞的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 13:59:52