1

我想与具有基于 URL 的 API 的 Web 服务通信。例如,我有以下网址:

http://api.bla.com/aaa/bbb.ashx?Action=GetSecurityToken&vendorId=3

我可以将 URL 放入浏览器并获取包含所有详细信息的 XML 页面。

我想从我的 grails 应用程序中获取 XML 页面,因此我使用以下代码:

http = new HTTPBuilder('http://api.bla.com/aaa/bbb.ashx')
html = http.get( path : '/', query : [Action :"GetSecurityToken", vendorId: "3"] ) )
println html

为什么这不起作用。我收到一个错误的请求。如何在我的 grails 控制器中从上面的 URL 获取 xml 页面?

4

1 回答 1

1

我认为最终的网址将是http://api.bla.com/aaa/bbb.ashx/?Action=GetSecurityToken&vendorId=3,因为您将基本网址定义为http://api.bla.com/aaa/ bbb.ashx并将您的呼叫路径设置为/.

尝试更改您的基本网址,例如(取自示例):

def http = new HTTPBuilder('http://api.bla.com/aaa')
http.get( path : '/bbb.ashx',
          contentType : XML,
          query : [Action :"GetSecurityToken", vendorId: "3"] ) { resp, reader ->

  println "response status: ${resp.statusLine}"
  println 'Headers: -----------'
  resp.headers.each { h ->
    println " ${h.name} : ${h.value}"
  }
  println 'Response data: -----'
  System.out << reader
  println '\n--------------------'
}
于 2012-11-23T15:11:48.947 回答