Ana içeriğe geç

API Çağrısı (x-www-form-urlencoded)

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:

  1. Form Data Hazırlama: URL parametrelerini application/x-www-form-urlencoded formatında hazırlar.
  2. HTTP Bağlantısı: HTTP POST isteği için bağlantı oluşturur.
  3. Content-Type Ayarlama: application/x-www-form-urlencoded Content-Type'ı ayarlar.
  4. Veri Gönderme: Form data'yı POST body olarak gönderir.
  5. 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.

not

Bu script, request hattında (Request Policy) çalıştırılmalıdır çünkü requestHeaderMapToTargetAPI değişkenini kullanmaktadır.