Bu sayfa, Groovy script politikası kullanarak x-www-form-urlencoded formatında API çağrısı yapma işleminin nasıl yapılacağını açıklar.
Groovy Script
import groovy.json.JsonSlurper
try{
String urlParameters = "url=parametreleri&burada=yerAlacak"
byte[] postData = urlParameters.getBytes("UTF-8")
int postDataLength = postData.length
String request = "http://<SERVICE_IP>:30080/token"
URL url = new URL(request)
HttpURLConnection conn = (HttpURLConnection) url.openConnection()
conn.setDoOutput(true)
conn.setRequestMethod("POST")
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded")
conn.setUseCaches(false)
try{
DataOutputStream wr = new DataOutputStream(conn.getOutputStream())
wr.write(postData)
wr.close()
}catch(Exception e){
requestErrorMessageToTargetAPI = e.getMessage()
}
//do some logic with json response
def json = conn.inputStream.withCloseable { inStream ->
new JsonSlurper().parse(inStream as InputStream)
}
requestHeaderMapToTargetAPI.put("Authorization", "Bearer " + json.access_token)
//or do some logic with text response
String responseText = conn.inputStream.withCloseable { inStream ->
new BufferedReader(new InputStreamReader(inStream, "UTF-8")).getText()
}
}catch(Exception e){
requestErrorMessageToTargetAPI = e.getMessage()
}
Açıklama
Bu script şu işlemleri yapar:
- Form Data Hazırlama: URL parametrelerini
application/x-www-form-urlencoded formatında hazırlar.
- HTTP Bağlantısı: HTTP POST isteği için bağlantı oluşturur.
- Content-Type Ayarlama:
application/x-www-form-urlencoded Content-Type’ı ayarlar.
- Veri Gönderme: Form data’yı POST body olarak gönderir.
- Yanıt İşleme: JSON veya text formatında yanıtı işler ve kullanır.
Kullanım Senaryosu
Bu script, OAuth token alma gibi işlemlerde kullanılabilir. Form data formatında parametreler gönderilir ve dönen access token header’a eklenir.
Bu script, request hattında (Request Policy) çalıştırılmalıdır çünkü requestHeaderMapToTargetAPI değişkenini kullanmaktadır.