Я бы использовал http://xurrency.com/api/ для получения актуальных обменных курсов, вам придется заплатить 29,99 за это, хотя, если вы запрашиваете его более 10 раз в день. Часть документации на странице объясняет, как использовать API. Например. чтобы получить обмен США на евро вы используете http://xurrency.com/api/usd/eur/1.
Если вы введете это в свой браузер и просмотрите источник, вы увидите полученный ответ. Ответ в формате JSON.
Вам нужно будет использовать что-то вроде GSON для преобразования данных JSON в объект Java. Код для этого должен быть довольно простым, что-то вроде:
URL url = new URL("http://xurrency.com/api/usd/eur/1");
URLConnection yc = url.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
String jsonObject = "";
String line;
while ((line = in.readLine()) != null)
jsonObject += line;
in.close();
Gson gson = new Gson();
ExchangeRate = gson.fromJson(jsonObject, ExchangeRate.class);
Класс ExchnageRate будет специальным классом, предназначенным для инкапсуляции данных, полученных из этого JSON API.
Вы можете настроить приведенный выше код для работы со ссылкой, которую используете. Попробуйте следующий код:
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class Main {
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.google.com/ig/calculator?hl=en&q=1USD%3D%3FCAD");
URLConnection yc = url.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
String jsonObject = "";
String line;
while ((line = in.readLine()) != null)
jsonObject += line;
in.close();
System.out.println(jsonObject);
Gson gson = new Gson();
GoogleCurrency another = gson.fromJson(jsonObject, GoogleCurrency.class);
another.print();
}
}
public class GoogleCurrency {
private String lhs;
private String rhs;
private String error;
private String icc;
public GoogleCurrency() {
lhs = "0 U.S Dollar";
rhs = "0 U.S Dollar";
error = "true";
icc = "false";
}
public GoogleCurrency(String lhs,String rhs,String error,String icc) {
this.lhs = lhs;
this.rhs = rhs;
this.error = error;
this.icc = icc;
}
public void print() {
System.out.println(lhs + " = " + rhs);
}
}