尝试使用groovy脚本检索xml文件时出现HttpResponseException

尝试使用groovy脚本检索xml文件时出现HttpResponseException,groovy,Groovy,运行读取时,它总是捕获异常并输出无法读取$dId:$alias的数据: http = new HTTPBuilder('https://somewebsite.com') def read(http, path, dId, alias, portalFile, outputFileName) { try { println "Reading : path:$path, file:$portalFile" http.get(path: path,

运行读取时,它总是捕获异常并输出无法读取$dId:$alias的数据:

http = new HTTPBuilder('https://somewebsite.com')

def read(http, path, dId, alias, portalFile, outputFileName) {

   try {
     println "Reading : path:$path, file:$portalFile"

         http.get(path: path,
           contentType: TEXT,
           query: [id:dId, instance:alias, format:'xml', file:portalFile]) {resp, reader ->

           println "response status: ${resp.statusLine}"  
         println 'Headers: -----------'  
       resp.headers.each { h ->     
            println " ${h.name} : ${h.value}"  
       }

       new File(outputFileName).withWriter{out -> out << reader}
        }
  } catch (HttpResponseException h) {
    println "Unable to read data for $dId:$alias"
  }
}

如果我使用internet浏览器访问网站并单击所需的xml文件,它就会工作。有什么方法可以输出它所连接的URL吗?

要查看哪里出了问题,最好的方法是启用http builder的wire调试-这将向您显示正在发生的确切请求和响应。从中,您可以看到正在获取的URL、参数和头以及从服务器返回的内容

此处记录了启用调试-

例如,将以下内容添加到您的log4j.properties中

或者,更快更脏地将其放在groovy脚本的顶部

System.setProperty('org.apache.commons.logging.Log', 'org.apache.commons.logging.impl.SimpleLog')
System.setProperty('org.apache.commons.logging.simplelog.log.org.apache.http.wire', 'DEBUG')
System.setProperty('org.apache.commons.logging.Log', 'org.apache.commons.logging.impl.SimpleLog')
System.setProperty('org.apache.commons.logging.simplelog.log.org.apache.http.wire', 'DEBUG')