У меня есть этот код:Отправка запроса POST с HTTPBuilder, не дожидаясь ответа
ApiConsumer(String url) {
this.baseUrl = url
this.httpBuilder = initializeHttpBuilder()
this.cookies = []
}
private HTTPBuilder initializeHttpBuilder() {
def httpBuilder = new HTTPBuilder(baseUrl)
httpBuilder.handler.success = { HttpResponseDecorator resp, reader ->
resp.getHeaders('Set-Cookie').each {
String cookie = it.value.split(';')[0]
cookies.add(cookie)
}
return convertPlain("${reader}")
}
return httpBuilder
}
public def requestXML(Method method, ContentType contentType, String url, String bodyXML) {
httpBuilder.parser.'application/xml' = httpBuilder.parser.'text/plain'
httpBuilder.request(method, contentType) { request ->
uri.path = url
body = bodyXML
headers['Cookie'] = cookies.join(';')
}
}
В принципе, с requestXML(...)
он отправляет запрос XML на указанный URL с помощью HTTPBuilder для Groovy. Я использую этот код (с другими второстепенными функциями) для отправки запроса службе, и он работает. Но теперь я хочу повторно использовать его, чтобы сделать запрос POST другой службе, которая отвечает примерно через 30 минут, потому что эта служба WPS запускает программу и ждет ее завершения. Как я могу отправить этот запрос POST, не дожидаясь ответа?
Мне нужно настроить таймаут? Я попытался снять крышку httpBuilder.handler.success
без успеха. Также я не могу изменить способ обработки запроса WPS-сервисом.