2012-04-18 8 views
5

Uygulamam Asp.Net MVC3 C# .Net kodunda. Dönüşüm elde etmek için google Para Birimi Dönüştürme API'sını kullanıyorum.Girdi dizesi değil Google para birimi Dönüştürme API'sini kullanırken doğru biçim hatası Conversion API

Google Currency Conversion API Im Para için değerleri ve benim Kontrolör tutarı Para itibaren ve geçen. Aşağıda C# kodum var.

WebClient web = new WebClient(); string url = string.Format("http://www.google.com/ig/calculator?hl=en&q={2}{0}%3D%3F{1}", CurrenctCurr.ToUpper(), DestinationCurr.ToUpper(), TotCurrentPay); string response = web.DownloadString(url); Regex regex = new Regex("rhs: \\\"(\\d*.\\d*)"); Match match = regex.Match(response); decimal rate = Convert.ToDecimal(match.Groups[1].Value); 

Im hatası Girdi dize değil Doğru biçimde .Orada'da kendisine hiçbir iç istisna değildir hat

decimal rate = Convert.ToDecimal(match.Groups[1].Value.ToString()); 

üzerinde bir hata alıyorum.

Ben

decimal rate = Convert.ToDecimal(match.Groups[1].Value.ToString()); 

Ayrıca ben değişken bir dizede maçın değerini almak sonra it.but onun da çalışmıyor bir alt dize mantığı yapıyor deneyin çalıştı toString() dönüştürmek için denedim "im kadar dize değerini almaya çalışıyor, böylece

string test = match.ToString(); 
test=test.substring(0,test.Indexof(""")); 

tek Tırnak()" vardır. Öneriyi nasıl çözebilirim? Ya da başka hangi yönde doğru yönde deneyebilirim.

+1

"match.Groups [1] .Value" değeri nedir? –

+0

CurrenctCurr.ToUpper(), DestinationCurr.ToUpper(), TotCurrentPay –

+0

geçirdiğiniz değerleri verebilir misiniz? Aynı kod, aşağıdaki değerlerle benim için mükemmel çalışır CurrenctCurr = "USD"; DestinationCurr = "GBP"; TotCurrentPay = "10.123"; –

cevap

0

URL'yi almak için bunu deneyin.

Uri uri = new Uri(string.Format("http://www.google.com/ig/calculator?hl=en&q={2}{0}%3D%3F{1}", CurrenctCurr.ToUpper(), DestinationCurr.ToUpper(), TotCurrentPay)); 
    string url = uri.AbsoluteUri + uri.Fragment; 
    string response = web.DownloadString(url);