請通知API用於貨幣轉換,它返回JSON或小尺寸html。 我使用http://www.google.com/finance/converter?a=1&from=RUB&to=USD返回11 kb的HTML。 我在iOS應用程序中使用它。需要用於貨幣轉換的API
在此先感謝!
請通知API用於貨幣轉換,它返回JSON或小尺寸html。 我使用http://www.google.com/finance/converter?a=1&from=RUB&to=USD返回11 kb的HTML。 我在iOS應用程序中使用它。需要用於貨幣轉換的API
在此先感謝!
Yahoo Finance Currency Converter。
此網址格式可用於獲取不同格式的轉化率。
http://download.finance.yahoo.com/d/quotes.csv?s=AUDUSD=X&f=nl1d1t1
替代quotes.csv用適當的格式和參數與所需的碼
編輯:加入實施例的URL格式
似乎是我在找什麼。謝謝! – kastet 2011-04-25 15:43:00
這個電話和https呼叫似乎被響應關閉,「我們注意到這項服務被用於違反雅虎服務條款,因此該服務正在中止。對於所有未來的市場和股票數據研究,請參閱finance.yahoo.com。「 – Jacksonsox 2017-11-03 01:54:17
作爲評價提到這個服務是在2013年十一月關閉
Googles calulator API可以做到這一點;
請求:
http://www.google.com/ig/calculator?hl=en&q=100EUR=?USD
響應:
{lhs: "100 Euros",rhs: "145.67 U.S. dollars",error: "",icc: true}
我試過這個,但它與ISO貨幣標準並不完全匹配,例如俄羅斯盧布是ISO的」RUB「,但是該系統的」RUR「,所以它沒有任何價值 – kastet 2011-04-25 15:40:05
有其他嗎?RUB&RUR似乎可以在該系統上互換,可能是因爲RUR是舊的ISO標識 – 2011-04-25 16:38:07
iGoogle已關閉,所以現在您可以嘗試雅虎http://bit.ly/1cPOH2F :) – MyMomSaysIamSpecial 2013-11-06 08:02:25
現在的iGoogle已經死光了,亞歷克斯·K公司的解決方案不再起作用傷心地。 在PHP中,這是它的工作原理相同的方式也一樣可以有效替代:
$amount = urlencode($amount);
$from_Currency = urlencode($from_Currency);
$to_Currency = urlencode($to_Currency);
$get = file_get_contents("https://www.google.com/finance/converter?a=$amount&from=$from_Currency&to=$to_Currency");
$get = explode("<span class=bld>",$get);
$get = explode("</span>",$get[1]);
$converted_amount = preg_replace("/[^0-9\.]/", null, $get[0]);
或使用雅虎http://bit.ly/1cPOH2F :) – MyMomSaysIamSpecial 2013-11-06 08:02:55
@ hobailey感謝這 – 2013-11-07 14:31:25
這顯然是一個hacky解決方案,但一個工程 - 所以謝謝你:) – 2014-01-21 11:32:18
我用的iGoogle直到它倒閉,成爲我的權利。
感謝Nerfair壽在他的評論中迴應hobailey的評論上面,這工作真棒。我以爲我會在這裏發佈它,所以你可以充分看到它是如何工作的!
這裏是鏈接URL編碼:http://query.yahooapis.com/v1/public/yql?q=select%20 *%20from%20yahoo.finance.xchange%20where%20pair%20英寸%20%28%22USDCNY%22%29 &格式= JSON & ENV =商店://datatables.org/alltableswithkeys &回調=
超好看,只需更改貨幣對。謝謝Nerfair!
更新:雅虎API不工作了。留下這個遺留答案只是爲了提供這種信息,不再工作。
使用雅虎API:
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22USDLTL%22)&format=json&env=store://datatables.org/alltableswithkeys&callback=
它將返回JSON格式,如:
{
query: {
count: 1,
created: "2013-12-04T13:52:53Z",
lang: "en-US",
results: {
rate: {
id: "USDLTL",
Name: "USD to LTL",
Rate: "2.5485",
Date: "12/4/2013",
Time: "8:52am",
Ask: "2.5486",
Bid: "2.5485"
}
}
}
}
在URL檢查出有USDLTL了,所以只是改變你所需要的。
而且有時速度是如此之低,你看不到它甚至4個數字就說明:
率:0.0006
不要驚慌,只是做一個反向查詢,翻轉你的貨幣和做一些簡單的數學。
例如你知道匯率是從KRW到EUR 0.0006,但實際匯率是0.00000125,所以再次詢問API,只需翻轉貨幣:從EUR到USD的比率是多少。那麼你將得到大量的像12500000.xxx這樣做數學來得到你所需要的比例:一千二百五十零萬分之一,你會得到比= 0.00000125
希望幫助;)
附:解碼的URL這是更容易閱讀看起來像這樣:
http://query.yahooapis.com/v1/public/yql
?q=select * from yahoo.finance.xchange where pair in ("USDLTL")
&format=json
&env=store://datatables.org/alltableswithkeys
&callback=
free.currencyconverterapi.com JSON格式返回結果。
該Web服務還支持JSONP。該API非常易於使用,並且可以讓您將一種貨幣轉換爲另一種貨幣。
免責聲明,我是網站的作者。
樣本轉換網址是:http://free.currencyconverterapi.com/api/v3/convert?q=USD_PHP&compact=ultra它將返回json格式的值,例如, {「USD_PHP」:51.459999}
我用一個PHP類轉換匯率:
/**
* Yahoo currency rate import class
*
* @author Felix Geenen (http://www.geenen-it-systeme.de)
* @version 1.0.3
*/
class Yahoofinance
{
public static $_url = 'http://download.finance.yahoo.com/d/quotes.csv?s={{CURRENCY_FROM}}{{CURRENCY_TO}}=X&f=l1&e=.csv';
public static $_messages = array();
/*
* converts currency rates
*
* use ISO-4217 currency-codes like EUR and USD (http://en.wikipedia.org/wiki/ISO_4217)
*
* @param currencyFrom String base-currency
* @param currencyTo String currency that currencyFrom should be converted to
* @param retry int change it to 1 if you dont want the method to retry receiving data on errors
*/
public static function _convert($currencyFrom, $currencyTo, $retry=0)
{
$url = str_replace('{{CURRENCY_FROM}}', $currencyFrom, self::$_url);
$url = str_replace('{{CURRENCY_TO}}', $currencyTo, $url);
try {
$handle = fopen($url, "r");
if($handle !== false) {
$exchange_rate = fread($handle, 2000);
# there may be spaces or breaks
$exchange_rate = trim($exchange_rate);
$exchange_rate = (float) $exchange_rate;
fclose($handle);
if(!$exchange_rate) {
echo 'Cannot retrieve rate from Yahoofinance';
return false;
}
return (float) $exchange_rate * 1.0; // change 1.0 to influence rate;
}
}
catch (Exception $e) {
if($retry == 0) {
# retry receiving data
self::_convert($currencyFrom, $currencyTo, 1);
} else {
echo 'Cannot retrieve rate from Yahoofinance';
return false;
}
}
}
}
謝謝,我像其他許多人一樣使用igoogle,並被服務關閉。這個答案是目前爲止我能找到的唯一解決方案,它能夠在沒有其他不必要的垃圾的情況下正確地返回你想要的結果 – 2014-08-29 07:22:49
這裏是菲利克斯格南的答案,因爲很多服務器都捲曲代替的fopen使用的一個簡單的適應fopen默認關閉。
(我清理了一些代碼,並增加了一個遞減值重試。)
(還記得重試自基準根據您在到如刪除功能範圍進行更新。靜::或$此 - >)
function convert($from, $to, $retry = 0)
{
$ch = curl_init("http://download.finance.yahoo.com/d/quotes.csv?s=$from$to=X&f=l1&e=.csv");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
$rate = curl_exec($ch);
curl_close($ch);
if ($rate) {
return (float)$rate;
} elseif ($retry > 0) {
return convert($from, $to, --$retry);
}
return false;
}
可能重複的[如何通過API獲取貨幣匯率,如Google財經?](http://stackoverflow.com/questions/3139879/how-do-i-get- currency-exchange-rates-via-api-such-as-google-finance) – TRiG 2015-01-07 02:16:37
請參閱[免費和付費貨幣轉換API比較]中的5個API比較](http://www.freecurrencyconverterapi.com) – 2016-06-21 05:04:11