10G*_*per 8 rest grails groovy basic-authentication
如何在Grails 2.4.3中使用RESTful Web服务.我还需要使用基本身份验证.
你会认为这个问题已经有了一个很好的答案,但我真的很难找到一个.很多答案都指向了Grails rest插件的方向,我已经尝试了但是无法为我工作.我想我可能只是在努力学习文档并使用它错了.
10G*_*per 15
我找到了REST Client Builder插件,它有更好的文档记录,对我来说效果更好.感谢Graeme Rocher!这是一个简单的例子,希望对其他人有所帮助.
import grails.plugins.rest.client.RestBuilder
import grails.transaction.Transactional
@Transactional
class BatchInstanceService {
def getBatch(String id) {
String url = "https://foo.com/batch/$id"
def resp = new RestBuilder().get(url) {
header 'Authorization', 'Basic base64EncodedUsername&Password'
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是测试课.
import grails.test.mixin.*
import org.apache.commons.httpclient.*
import org.apache.commons.httpclient.methods.*
import org.springframework.http.HttpStatus
import spock.lang.Specification
@TestFor(BatchInstanceService)
class BatchInstanceServiceSpec extends Specification {
void "test get batch" () {
when:
def resp = service.restart('BI1234')
then:
resp.status == HttpStatus.OK.value
}
}
Run Code Online (Sandbox Code Playgroud)
返回的对象resp是ResponseEntity类的一个实例.
我真的希望这会有所帮助.如果有更好的例子,请发布链接给他们.谢谢!
小智 7
是的,您可以传递UrlTemplate样式的字符串以及要替换的名称/值对url参数的映射.此外,Auth标头还有另一种快捷方式可以自动编码......所以
def urlTemplate = "https://foo.com/batch/{id}"
def params = [id: $id]
def resp = new RestBuilder().get(urlTemplate, params) {
auth username, password
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7767 次 |
| 最近记录: |