Используя cURL, я могу отправить GET-запрос с телом.Пример:
curl -i -X GET http://localhost:8081/myproject/someController/l2json -H "content-type: application/json" -d "{\"stuff\":\"yes\",\"listThing\":[1,2,3],\"listObjects\":[{\"one\":\"thing\"},{\"two\":\"thing2\"}]}"
Вот JSON в разумном формате для удобочитаемости:
{"stuff":"yes",
"listThing":[1,2,3],
"listObjects":[{"one":"thing"},{"two":"thing2"}]}
Обычно -d
скажет cURL отправить POST, но я подтвердил, что -X GET
переопределяет это и посылает GET.Можно ли повторить это с HTTPBuilder?
Я сделал:
def http = new HTTPBuilder( 'http://localhost:8081/' )
http.post(path:'/myproject/myController/l2json', body:jsonMe, requestContentType:ContentType.JSON) { resp ->
println "Tweet response status: ${resp.statusLine}"
assert resp.statusLine.statusCode == 200
}
Что работает, но если я изменю .post
на .get
, я получу ошибку:
Cannot set a request body for a GET method. Stacktrace follows:
Message: Cannot set a request body for a GET method
Line | Method
->> 1144 | setBody in groovyx.net.http.HTTPBuilder$RequestConfigDelegate
Есть ли способ отправить GET с телом запроса, используя HTTPBuilder?