У меня есть следующий метод в файле Jenkins, который используется для извлечения данных с данного URL-адреса (отправка json на него и чтение вывода). Назвав его в Дженкинс вызывает сборку повиснуть с * Исходя ..»текстGroovy в Jenkinsfile зависает при отправке по URL-адресу
@NonCPS
def callService(server, method, params = '') {
final HttpURLConnection connection = "http://$server:8080/router/".toURL().openConnection()
connection.setRequestMethod("POST");
connection.setRequestProperty('Accept', 'application/json;charset=utf-8')
connection.setRequestProperty('Content-Type', 'application/json;charset=utf-8')
connection.setDoOutput(true)
connection.outputStream.withWriter { Writer writer ->
writer << """{"jsonrpc": "2.0", "method": "$method", "params": {$params}}"""
}
String text = connection.inputStream.withReader { Reader reader -> reader.text }
return text
}
и вызов этого метода:.
servers = ["example1"]
for (int i = 0; i < servers.size(); i++) {
server = servers[i]
assert callService(server, 'VersionService:getVersionDetails').matches('.*build:[1-9][0-9]*.*')
}
ли выше код правильно заводной один, или я делать что-то неправильно, что приводит код заморозить
Когда я делаю то же самое, используя локон, он работает?:
curl -v -H 'Accept: application/json;charset=utf-8' -H 'Content-Type: application/json;charset=utf-8' -d '{"jsonrpc": "2.0", "method":"VersionService:getVersionDetails", "params":{}}' http://example1:8080/router/
ли он в конечном итоге тайм-аут? –
Нет, он висит там вечно. Когда я делаю завиток, он работает правильно. –
@tim_yates, возможно, reader.text ждет конца строки? Ответ не содержит окончательной строки. –