Json içerikli bir isteği dinamik olarak form data verisine dönüştürüp, HTTP isteği atan Groovy Kod örneği aşağıda yer almaktadır.
import org.apache.http.HttpResponse
import org.apache.http.client.methods.HttpPost
import org.apache.http.entity.mime.MultipartEntityBuilder
import org.apache.http.entity.ContentType
import org.apache.http.impl.client.HttpClients
import org.apache.http.util.EntityUtils
import org.apache.http.message.BasicHeader
import groovy.json.JsonSlurper
def post = new HttpPost('http://test.com/api/v1/ServiceRequest/NewRequest')
def entityBuilder = MultipartEntityBuilder.create()
def boundary = "----WebKitFormBoundary7MA4YWxkTrZu0gW"
entityBuilder.setBoundary(boundary)
//JSON istek JSON Nesnesine dönüştürülür
def slurper = new JsonSlurper()
def params = slurper.parseText(requestBodyTextToTargetAPI)
//JSON'daki her bir key ve değeri için form verisine dinamik ekleme yapılır
params.each { key, value ->
entityBuilder.addTextBody(""+key, ""+value, ContentType.TEXT_PLAIN )
}
//Gerekli ise diğer başlık bilgileri girilir
post.addHeader(new BasicHeader('ApiKey', '##################################'))
post.setEntity(entityBuilder.build())
def client = HttpClients.createDefault()
def response
try {
response = client.execute(post)
//Yapılan isteğin sonucu ile akış kesilerek aşağıdaki değişkenlerin doldurulması ile isteğe yanıt yönlendirilebilir, ya da sonuç üzerinde gerekli iş mantığı çalıştırılır.
statusCodeToTargetAPI=response.getStatusLine().getStatusCode();
requestErrorMessageToTargetAPI=EntityUtils.toString(response.getEntity());
} finally {
response?.close()
client?.close()
}
GROOVY