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.