SENDHTTPPOST ile veri göndermek
TROIA'dan dışarıya HTTP POST isteği atmak için SENDHTTPPOST komutu kullanılır; URL, encoding, content-type, cookie ve header gibi parametreler opsiyoneldir:
OBJECT:
STRING STRURL,
STRING SONUC;
STRURL = 'http://192.168.0.2:8080/FileUploader/index.jsp';
SENDHTTPPOST '' TO STRURL;
SONUC = SYS_HTTPPOSTRESPONSE;
Yanıt her zaman SYS_HTTPPOSTRESPONSE sistem değişkeninde, gelen cookie'ler ise SYS_HTTPPOSTCOOKIES'te tutulur. Bir sonraki isteğe aynı cookie'yi taşımak için COOKIE parametresi kullanılır:
POSTPARAM = 'username=btan&password=xxxx';
STRURL = 'http://192.168.0.2:8080/FileUploader/login';
SENDHTTPPOST POSTPARAM TO STRURL COOKIE SONUC;
CALLWEBSERVICE ile SOAP servis çağırmak
Bir WSDL'e göre SOAP web servisi çağırmak için CALLWEBSERVICE kullanılır; parametre WSDL adresi, operasyon adı ve WITH ile gönderilen giriş değerleridir:
OBJECT:
STRING WSDLURL,
STRING SONUC,
TABLE TMPTABLE;
WSDLURL = 'http://www.webservicex.net/globalweather.asmx?WSDL';
CALLWEBSERVICE WSDLURL, 'GetCitiesByCountry' TO SONUC WITH 'Germany';
PARSEXML TEXT SONUC INTO TMPTABLE;
SET TMPTABLE TO TABLE TMPTABLE;
Dönen XML metni doğrudan PARSEXML ile tabloya çevrilip, SET ... TO TABLE ile ekranda gösterilebilir.
SOAP olmayan servisler için SENDHTTPPOST + PARSEXML
Servis SOAP değilse (ör. basit bir XML/form endpoint'i), CALLWEBSERVICE yerine SENDHTTPPOST ile isteği atıp, gelen yanıtı PARSEXML ile işlemek de yaygın bir yöntemdir:
STRCTYPE = 'application/x-www-form-urlencoded';
STRURL = 'http://www.w3schools.com/xml/tempconvert.asmx/CelsiusToFahrenheit';
SENDHTTPPOST 'celsius=10' TO STRURL CONTENTTYPE STRCTYPE;
SONUC = SYS_HTTPPOSTRESPONSE;
PARSEXML TEXT SONUC INTO TMPTABLE;
Sonuç
SENDHTTPPOST ham HTTP isteği için, CALLWEBSERVICE ise WSDL tanımlı SOAP servisleri çağırmak için var — ikisi de sonucu string olarak döner, veriyi kullanılabilir hale getirmek genelde PARSEXML ile tamamlanır.
Yorumlar (0)
Yorum Yaz