2012-07-08 3 views
5

내가 원하는 것은 인터넷에서 환율을 얻는 것입니다. 오랜 연구 끝에이 기능을 발견했습니다.인터넷에서 환율 받기

protected void Button1_Click(object sender, EventArgs e) 
    { 
     try 
     { 
     string xmlResult = null; 
     string url; 
     url = "http://www.webservicex.net/CurrencyConvertor.asmx/ConversionRate?FromCurrency=" + TextBox1.Text + "&ToCurrency=" + TextBox2.Text + ""; 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
     HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
     StreamReader resStream = new StreamReader(response.GetResponseStream()); 
     XmlDocument doc = new XmlDocument(); 
     xmlResult = resStream.ReadToEnd(); 
     doc.LoadXml(xmlResult); 
     Label1.Text = "Current Exchange Rate for " + TextBox1.Text.ToUpper() + " ---> " + TextBox2.Text.ToUpper() + " value " + doc.GetElementsByTagName("double").Item(0).InnerText; 
     } 
     catch(Exception ex) 
     { 
      Label1.Text="Not a valid Currency or Try again later"; 
     } 
    } 

그러나 http://www.webservicex.net/은 미화 반대로 변환 AZN (아제르바이잔 마나 트)를 지원하지 않습니다. 내가 할 수있는 일은 가능하다면 인터넷에 연결해서 요금을받는 것입니다. 변환을 위해 작성된 함수를 사용하십시오 (이미 작성했습니다).

조언을 해주십시오. 어떻게하면 USD 및 AZN의 현재 요율을받을 수 있습니까 (아니면 USD 또는 AZN을 보내서 결과를 얻을 수 있습니까)? Windows Forms 응용 프로그램 내부에서 가져올 수 있습니까?

답변

0

그러나 http://www.webservicex.net/은 미화로 AZN (아제르바이잔 마나 트)를 지원하고 그래서 그 반대의 경우도 마찬가지

하지 않는 이유는 무엇입니까? 다른 통화로가는 교차 환율을 계산하십시오.

AZN은 매우 제한된 거래량 또는 노출로 인한 프린지 화폐 일 가능성이 높습니다. OANDA (http://www.oanda.com)에게 질문하기 나는 USD 변환 (http://www.oanda.com/currency/cross-rate/result?quotes=GBP & 따옴표 = EUR &)을 포함하여 몇몇 따옴표를 얻고있다. 따옴표 = 엔 & 따옴표 = CHF & 따옴표 = USD & 따옴표 = AZN &는 뭔가 = 가져 오기 + 내 + 표 + %의 3E)

가능성 webservicesx.net 단지 가격이 없습니다 갈 것을 주요 통화 중.

다른 견적을 사용하십시오. FXCM과 Oanda는 귀하가 가입 할 수있는 API를 보유하고있을 수 있습니다.

AZN에서 다른 통화로가는 교차비를 계산할 수 있는지 여부를 알 수 있습니다 (가격이 있으면 USD에서 USD로). 이것은 FOREX에서 자주 행해지지만 - 기분 좋은 - USD는 대부분 교차 환율 계산이 필요하지 않습니다.

어쨌든 Windows 양식 응용 프로그램에서 가져 오는 방법이 있습니까? 당신이 인터넷에 API에 대해 물어

는, 다음은 윈폼, 웹 양식, 파워 쉘 또는 VB 스크립트의 API 중 하나가 그것을 지원 여부, 그리고 사용하는 UI 기술이 있는지 전혀 관계가 없습니다 부적절한.

0

아마도 도움이 될 것입니다. 나는 Google과 몇몇 대체 웹 서비스를 보았지만, 내가 본 것은 AZN을 지원하지 않았다. 그러나 나는 그 일을하는 데 엄청난 시간을 소비하지 않았습니다. 그것은 당신의 일입니다. 나는이 찾을 않았다
http://www.transfermate.com/en/free_currency_converter.asp

당신은 어쩌면 브라우저 컨트롤을 추가하고 사용자 정의 페이지에이를 삽입하고 기본 폼에 결과를 검색하여, 응용 프로그램에 추가 할 수있다. 그러나 궁극적으로 질문에 직접 대답했습니다.

변환을 위해 작성된 함수를 사용하십시오 (이미 작성했습니다).

해결 방법을 찾을 수 없다면 직접 빌드하십시오.

또한 시도 : https://developers.google.com/finance/http://openexchangerates.org/

4

이 간단한 algorythm는 당신에게 당신이 키 값 쌍 목록에 필요한 모든 것을 제공 할 것입니다.

public static List<KeyValuePair<string, decimal>> GetCurrencyListFromWeb(out DateTime currencyDate) 
    { 
     List<KeyValuePair<string, decimal>> returnList = new List<KeyValuePair<string, decimal>>(); 
     string date = string.Empty; 
     using (XmlReader xmlr = XmlReader.Create(@"http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml")) 
     { 
      xmlr.ReadToFollowing("Cube"); 
      while (xmlr.Read()) 
      { 
       if (xmlr.NodeType != XmlNodeType.Element) continue; 
       if (xmlr.GetAttribute("time") != null) 
       { 
        date = xmlr.GetAttribute("time"); 
       } 
       else returnList.Add(new KeyValuePair<string, decimal>(xmlr.GetAttribute("currency"), decimal.Parse(xmlr.GetAttribute("rate"), CultureInfo.InvariantCulture))); 
      } 
      currencyDate = DateTime.Parse(date); 
     } 
     returnList.Add(new KeyValuePair<string, decimal>("EUR", 1)); 
     return returnList; 
    } 
+0

자세한 내용은 메시지를 남겨주세요. – Freeman

+0

멋진 코드 조각이지만 일반적인 '사전 <>'을 선택하지 않는 이유가 무엇입니까? –