Sahi Pro - Accessing Web Services through REST APIs
REST APIs have been introduced in Sahi Pro 5.1.0.0. These can be used to access WebServices.
Here are two examples of how GET and POST requests can be handled.
GET example
URL: http://services.aonaware.com/DictService/DictService.asmx/Define?word=potato
var $request = new RESTRequest();
$request.setHeader("Accept-Encoding", "deflate,sdch");
$request.setURL("http://services.aonaware.com/DictService/DictService.asmx/Define");
$request.addToQueryString("word", "potato");
var $response = $request.submit("get");
var $responseBody = $response.getBodyAsString();
$data = $responseBody.replace(/<[?]xml[^<]*</, '<');
default xml namespace = "http://services.aonaware.com/webservices/";
var $xml = new XML($data);
var $meaning = $xml.Definitions[0].Definition[0].WordDefinition[0].toString();
_alert($meaning);
POST example
URL: http://www.ezzylearning.com/services/CountryInformationService.asmx/GetPopulationByCountry
Post Data: countryName=India
var $request = new RESTRequest();
$request.setHeader("Accept-Encoding", "deflate,sdch");
$request.setURL("http://www.ezzylearning.com/services/CountryInformationService.asmx/GetPopulationByCountry");
var $p = new Parameter();
$p.add("countryName", "India");
$request.addToBody($p);
var $response = $request.submit("post");
var $responseBody = $response.getBodyAsString();
$data = $responseBody.replace(/<[?]xml[^<]*</, '<');
default xml namespace = "http://www.ezzylearning.com/services/CountryInformationService.asmx";
var $xml = new XML($data);
_alert($xml.toString());
info
Also refer to
userdata/scripts/demo/testRestAPIs.sah
for more examples.