我想与具有基于URL的API的webservice进行通信。例如,我有以下网址:
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页面?
答案 0 :(得分:1)
我认为最终网址为http://api.bla.com/aaa/bbb.ashx/?Action=GetSecurityToken&vendorId=3,因为您将基本网址定义为http://api.bla.com/aaa/bbb.ashx,并将您的通话路径设置为/
。
尝试更改您的基本网址(取自this示例):
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--------------------'
}