Попробовать HttpBuilder-NG - заменить старый HttpBuilder или wslite
Я пытаюсь переключиться на HttpBuilder-NG, но у меня возникли некоторые трудности с этим. Я не могу найти какие-либо конкретные примеры работы с заголовками ответов или даже кодом состояния ответа. Это было не просто со старым httpbuilder - RESTClient, чтобы быть конкретным. Также я использую его для тестирования. Вот один пример, который мне нужно перевести на HttpBuilder-NG
def r = client.get(path: '/ws/v1/ping')
assert r.status == 200
как это выглядит в HttpBuilder-NG?
Ваш комментарий поставил меня на правильный путь. Спасибо! Я надеюсь избежать перезаписи тысяч строк тестового кода, создав класс-оболочку вокруг HttpBuilder-NG, чтобы он возвращал объекты, подобные старому HttpBuilder/RESTClient. Кроме того, нечто подобное может помочь людям, которые пытаются уйти от wslite. Вот что я придумала до сих пор, на случай, если это будет полезно для других людей:
def client = HttpBuilder.configure {
request.uri = 'https://myServer.server.org'
request.auth.basic 'user1', 'fakePass1'
ignoreSslIssues execution
}
//use the client to make hit the ping endpoint
def r = client.get {
request.uri.path = path+'ping'
response.success {FromServer fs, body ->
[status: fs.statusCode,
headers: fs.headers,
data: body
]
}
}
assert r.status == 200
assert r.headers.size() > 0
assert r.data[0] == 'pong'
1 ответ
Существует довольно хорошее руководство пользователя со множеством примеров.
Ваш пример может быть сделан несколькими способами, одним из которых будет:
HttpBuilder.configure {
request.uri = '<YOUR_SERVER>'
}.get {
request.uri.path = '/ws/v1/ping'
response.when(200){
// ...
}
}
Смотрите JavaDocs для более подробной информации о классах и методах, на которые ссылаются.