2

我正在使用Groovy/XmlSlurper向 Web 服务发起请求:

new XmlSlurper().parse("http://en.wikipedia.org/w/api.php?action=...")

我想设置用户代理让网站知道请求来自哪个项目。

如何设置用户代理?

  • XMLSlurper 的构造函数没有这样的东西。
  • setProperty方法听起来很有趣,但 Google 并没有引出任何与 UA 相关的内容。
  • 我宁愿避免更改代码以放弃 XmlSlurper 以支持另一个库。
4

2 回答 2

2

看起来像Groovy使用 JVM 的默认 SAX 解析器连接到输入流并执行初始解析。我在 SO 上看到了这个答案,这可能会有所帮助 - 您需要做的就是在调用 slurper 之前设置它以实现它:

System.setProperty("http.agent", "my-agent-name");

PS这只是一个猜测-希望它有所帮助。

于 2012-04-17T08:12:12.340 回答
0

我看到第 3 页,顺便说一句,还有 Groovy Http Builder,它使用 JsonSlurper 来处理 JSON 结果,但发出 http 请求要灵活得多 - http://groovy.codehaus.org/HTTP+Builder

于 2012-04-17T08:15:14.613 回答