NOTE: GOOGLE turn off currency API but now you can https://www.google.com/finance/converter?a=1&from=AUD&to=INR
Some time ago I found the following Google API , which provides the currency conversion rates for free. Maybe you’ll find it useful.
In this article, I’ll explain how to get currency rate in ASP.Net using C#.
For example, 1 AUD = ? INR (1 Australian Dollar = ? Indian Rupee )
To get INR from 1 AUD, we need to call google API in following format: ( you can try by paste this url into your web browse)
http://www.google.com/ig/calculator?hl=en&q=1AUD%3D%3FINR The number 1 before AUD is the amount of dollars or quantity.
Above Url returns a JSON object with the details.:
{lhs: "1 Australian dollar",rhs: "47.8167309 Indian rupees",error: "",icc: true}
As you can see the result is called rhs, but it combines the resulting value with the text “Indian rupees”. Now we will remove the string and store the result as a decimal.
We implement fuction called Convert with three parameter (amount, fromCurrency, toCurrency) which return Exchange rate in decimal.
Code:
public static decimal Convert(decimal amount, string fromCurrency, string toCurrency) { WebClient web = new WebClient(); string url = string.Format("http://www.google.com/ig/calculator?hl=en&q={2}{0}%3D%3F{1}", fromCurrency.ToUpper(), toCurrency.ToUpper(), amount); string response = web.DownloadString(url); Regex regex = new Regex("rhs: \\\\\\"(\\\\d*.\\\\d*)"); Match match = regex.Match(response); decimal rate = System.Convert.ToDecimal(match.Groups[1].Value); return rate; }
Thanks