Bryian Tan
Интересно, я не могу понять, как вы заставляете код работать. Есть несколько вопросов,
1. отсутствующий параметр количества, также упомянутый @ppolymorphe
2. валюта toCurrency должна быть
3. валюта fromCurrency должна быть от
4. я предполагаю, что регулярное выражение должно извлекать выходные данные из конвертера?
Вот мой код.
string url = string.Format("https://www.google.com/finance/converter?from={0}&to={1}&a={2}", "AED", "ANG", 1);
string response = web.DownloadString(url);
Regex regex = new Regex("<span class=bld>(.*?)</span>");
var result = regex.Match(response).Groups[1].Value;
выход: 0.4874 Анг
Вот HTML-разметка от Google converter, если вы хотите знать, как я получаю регулярное выражение.
<div id=currency_converter_result>1 AED = <span class=bld>0.4874 ANG</span>
Вот несколько примеров :
https://www.google.com/finance/converter?from=SGD&to=SKK& a=1
https://www.google.com/finance/converter?from=USD& to=CNY& a=100
Вот так будет выглядеть новый метод CurrencyConversion.
public string CurrencyConversion(decimal amount, string fromCurrency, string toCurrency)
{
WebClient web = new WebClient();
string url = string.Format("https://www.google.com/finance/converter?from={0}&to={1}&a={2}", fromCurrency.ToUpper(), toCurrency.ToUpper(), amount);
string response = web.DownloadString(url);
Regex regex = new Regex("<span class=bld>(.*?)</span>");
var result = regex.Match(response).Groups[1].Value;
return result;
}
Bryian Tan
Ну, трудно догадаться, что ты делаешь. Я предполагаю, что вы не изменили метод CurrencyConversion правильно? во всяком случае, здесь я думаю, что новый метод должен выглядеть так.
public string CurrencyConversion(десятичная сумма, строка fromCurrency, строка toCurrency)
{
Веб-клиент веб = новый Вебклиент();
string url = строка.Формат ("https://www.google.com/finance/converter?from={0}& to={1}& a={2}", fromCurrency.ToUpper (), toCurrency.ToUpper (), сумма);
строковый ответ = web.DownloadString(url);
Регулярное выражение регулярное выражение = новое регулярное выражение ("в<промежуток класс=стр.&ГТ;(.*?)&ЛТ;/службы&ГТ;");
var result = регулярное выражение.Совпадение (ответ).Группы[1]. Значение;
возвращаемый результат;
}
Developer29
код ASP
&ЛТ;АСП:метка идентификатор="lbl_Amount" атрибут runat="сервер" текст="сумма"и GT;
&ЛТ;АСП:текстовое поле с ID="txt_amount" атрибут runat="сервер"и GT;
&ЛТ;АСП:метка идентификатор="lbl_FromCurrency" атрибут runat="сервер" текст="валюта"и GT;
&ЛТ;АСП:текстовое поле с ID="txt_fromCurrency" атрибут runat="сервер"и GT;
&ЛТ;АСП:метка идентификатор="lbl_toCurrency" атрибут runat="сервер" текст="валюта"и GT;
&ЛТ;АСП:текстовое поле с ID="txt_ToCurrency" атрибут runat="сервер"и GT;
&ЛТ;АСП:метка идентификатор="lbl_value" атрибут runat="сервер" текст=""&ГТ;
&ЛТ;АСП:кнопка ID="Btn_Convert" атрибут runat="сервер" текст="конвертации" функция onclick="преобразовать"/&ГТ;
Код C#
общественные строку преобразовать(десятичное количество, fromCurrency строку, строку toCurrency)
{
// string url = строка.Формат ("https://www.google.com/finance/converter?from={0}& to={1}& a={2}", fromCurrency.ToUpper (), toCurrency.ToUpper (), сумма);
string url = строка.Формат ("https://www.google.com/finance/converter?a={2}& from={0}& to={1}", txt_fromCurrency, txt_ToCurrency, txt_amount);
Веб-клиент веб = новый Вебклиент();
строковый ответ = web.DownloadString(url);
Regex regex = новое регулярное выражение (" (.*?)");
var result = регулярное выражение.Совпадение (ответ).Группы[1]. Значение;
возвращаемый результат;
}
Это мой код