We have discussed earlier the standard and suggested way of how to consume the webservice. The URL for the same is below:
Currency currency;
str url;
str exchRate = "";
str fromCurrency, toCurrency;
CLRObject clro = null;
System.IO.Stream stream = null;
System.IO.StreamReader streamReader = null;
;
new InteropPermission(InteropKind::ClrInterop).assert();
clro = System.Net.WebRequest::Create(url);
httpRequest = clro;
httpResponse = httpRequest.GetResponse();
stream = httpResponse.GetResponseStream();
streamReader = new System.IO.StreamReader(stream);
exchRate = streamReader.ReadToEnd();
}
catch(Exception::CLRError)
{
throw error(AifUtil::getClrErrorMessage());
}
}
Below is the output of the code:
USD to INR - 49.755
To consume the webservice this way, needs us to have the wsdl link defined. Consider the case in which the service provider is not providing the webservice through wsdl. You will not be able to create the reference to the webservice in that case from visual studio and cannot move further to consume the webservice.
We will take an example of the Webservice for Exchange Rate by Yahoo which we can call directly without the creation of reference to it and get the exchange rate of USD to INR as shown below:
static void ExchRateTest(Args _args)
{Currency currency;
str url;
str exchRate = "";
str fromCurrency, toCurrency;
System.Net.HttpWebRequest httpRequest = null;
System.Net.HttpWebResponse httpResponse = null;CLRObject clro = null;
System.IO.Stream stream = null;
System.IO.StreamReader streamReader = null;
;
fromCurrency = 'USD';
toCurrency = 'INR'; url = "http://finance.yahoo.com/d/quotes.csv?e=.csv&f=l1&s=" + fromCurrency + toCurrency + "=X";
try
{new InteropPermission(InteropKind::ClrInterop).assert();
clro = System.Net.WebRequest::Create(url);
httpRequest = clro;
httpResponse = httpRequest.GetResponse();
stream = httpResponse.GetResponseStream();
streamReader = new System.IO.StreamReader(stream);
exchRate = streamReader.ReadToEnd();
info(strFmt("%1 to %2 - %3",fromCurrency,toCurrency,exchRate));
CodeAccessPermission::revertAssert();}
catch(Exception::CLRError)
{
throw error(AifUtil::getClrErrorMessage());
}
}
Below is the output of the code:
USD to INR - 49.755
No comments:
Post a Comment