我目前正在开发一个 web 应用程序,它应该对现有的 web 服务 api 进行安静的服务调用。
我拥有的是基本 URL 和 API 名称。
关于如何开始工作的任何帮助?我想我需要对我拥有的基本 url 使用 httpbuilder,然后是 /api 名称。但是,如果它工作,我如何在 grails 上测试它?
当我将基本 url 粘贴到浏览器上时,它确实返回了一些 xml 信息,所以我需要在 grails 上执行此操作。
当我通过浏览器粘贴 url 时的 XML 响应
<ns1:createNewUserResponse>
<userId>21</userId>
</ns1:createNewUserResponse>
所以我需要能够通过我的网络应用程序(grails)获得这个响应,而不是把它粘贴到浏览器上。
编辑*这是一个很好的例子,我觉得很有用
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.0-RC2' )
import groovyx.net.http.*
import static groovyx.net.http.ContentType.*
import static groovyx.net.http.Method.*
def http = new HTTPBuilder( 'http://ajax.googleapis.com' )
// perform a GET request, expecting JSON response data
http.request( GET, JSON ) {
uri.path = '/ajax/services/search/web'
uri.query = [ v:'1.0', q: 'Calvin and Hobbes' ]
headers.'User-Agent' = 'Mozilla/5.0 Ubuntu/8.10 Firefox/3.0.4'
// response handler for a success response code:
response.success = { resp, json ->
println resp.statusLine
// parse the JSON response object:
json.responseData.results.each {
println " ${it.titleNoFormatting} : ${it.visibleUrl}"
}
}
// handler for any failure status code:
response.failure = { resp ->
println "Unexpected error: ${resp.statusLine.statusCode} : ${resp.statusLine.reasonPhrase}"
}
}
但我不理解查询部分,如何根据需要更改它?我拥有的 URL 包含用户名和密码的凭据,响应应返回一个 securityToken,我需要将其从结果中取出。任何帮助将不胜感激!