Lý tưởng nhất là bạn không nên viết công thức của riêng bạn để chuyển đổi đồng tiền do bản chất năng động của tiền tệ. Bạn nên truy cập một số API công khai, có thể được sử dụng đáng tin cậy để thực hiện quy đổi tiền tệ. Một trong các API như vậy là Yahoo API chuyển đổi tiền tệ. Yahoo API rất đơn giản. Yêu cầu chung cơ bản để nhận được tỷ lệ tiền tệ hiện nay giữa hai đồng tiền trông giống như:
http://download.finance.yahoo.com/d/quotes.csv?s=[From tệ] [Để tệ] = X & f = l1 & e = cs
Ví dụ, để có được tỷ giá tiền tệ hiện tại giữa đô la Mỹ và Shekels Israel, yêu cầu sau đây phải được xây dựng:
http://download.finance.yahoo.com/d/quotes.csv?s=USDILS=X&f=l1&e=.cs
Nhận thông tin tỷ giá tiền tệ là khá đơn giản. Nó bắt đầu với một giao diện cơ bản để xác định một hành vi chung chuyển đổi:
public interface CurrencyConverter {
public float convert(String currencyFrom, String currencyTo) throws Exception;
}
Và các lớp thực hiện với một ứng dụng chính cơ bản cho thấy việc sử dụng của nó:
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import java.io.IOException;
public class YahooCurrencyConverter implements CurrencyConverter
{
public float getConversionRate(String from, String to) throws IOException
{
HttpClientBuilder builder = HttpClientBuilder.create();
try (CloseableHttpClient httpclient = builder.build())
{
HttpGet httpGet = new HttpGet("http://quote.yahoo.com/d/quotes.csv?s=" + from + to + "=X&f=l1&e=.csv");
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httpGet, responseHandler);
return Float.parseFloat(responseBody);
}
}
public static void main(String[] arguments) throws IOException
{
YahooCurrencyConverter yahooCurrencyConverter = new YahooCurrencyConverter();
float current = yahooCurrencyConverter.getConversionRate("USD", "ILS");
System.out.println(current);
}
}
QUAN TRỌNG: Yahoo hay bất kỳ nhà cung cấp khác không phải là bắt buộc phải cung cấp các API như vậy trừ khi bạn không thanh toán cho họ. Vì vậy, bạn có thể cần phải tìm một số API trả phí trong trường hợp bạn đang xây dựng một ứng dụng thương mại tùy thuộc vào chúng. Hoặc bạn cần phải thận trọng để đảm bảo rằng các API miễn phí là LÊN và CHẠY CHUNG đúng cho bạn
Nguồn
2013-06-08 11:27:10
IMO, một API được duy trì bởi một thứ gì đó lớn như Yahoo tốt hơn nhiều so với mọi thư viện tĩnh mà bạn từng tìm thấy. +1. – 11684
Cảm ơn! Tôi sẽ thử nó :) – amp
@amp Thêm một từ thận trọng trong độ phân giải. Xin vui lòng đọc đó là tốt. –