Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用YahooAPI获取汇率,但无需繁琐地列出所有主要的&;十字架?_Api_Yahoo Api_Currency Exchange Rates - Fatal编程技术网

如何使用YahooAPI获取汇率,但无需繁琐地列出所有主要的&;十字架?

如何使用YahooAPI获取汇率,但无需繁琐地列出所有主要的&;十字架?,api,yahoo-api,currency-exchange-rates,Api,Yahoo Api,Currency Exchange Rates,我需要雅虎API,它将返回所有国家的汇率对国家的基础上,我通过 例如,我将通过美元作为基数,然后雅虎API应该返回我所有其他国家的汇率 我在谷歌上搜索,我发现以下雅虎API http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ( "USDEUR", "USDJPY", "USDBGN", "USDCZK",

我需要雅虎API,它将返回所有国家的汇率对国家的基础上,我通过

例如,我将通过美元作为基数,然后雅虎API应该返回我所有其他国家的汇率

我在谷歌上搜索,我发现以下雅虎API

http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange
       where pair in ( "USDEUR", "USDJPY", "USDBGN", "USDCZK",
                       "USDDKK", "USDGBP", "USDHUF", "USDLTL",
                       "USDLVL", "USDPLN", "USDRON", "USDSEK",
                       "USDCHF", "USDNOK", "USDHRK", "USDRUB",
                       "USDTRY", "USDAUD", "USDBRL", "USDCAD",
                       "USDCNY", "USDHKD", "USDIDR", "USDILS",
                       "USDINR", "USDKRW", "USDMXN", "USDMYR",
                       "USDNZD", "USDPHP", "USDSGD", "USDTHB",
                       "USDZAR", "USDISK"
                       )&env=store://datatables.org/alltableswithkeys
在这个API中,我必须为每个国家逐个编写货币对

我不想一个接一个地写货币对

我想通过美元,并返回我所有其他国家的汇率


请给我发送符合我要求的Yahoo API查询字符串。

最简单的方法是准备一个静态转换器,负责返回预组装列表,该转换器将返回(发送)Yahoo API查询字符串

一个简单的实体模型示例是:

string sendMeTheYahooApiQuerySTRING(  const string aCurrency1 = "USD",
                                            bool  &ErrorFLAG  = True
                                      ){
       switch( aCurrency1 ){
         case "USD":   ErrorFLAG = False; return( "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ( "USDEUR", "USDJPY", "USDBGN", "USDCZK", "USDDKK", "USDGBP", "USDHUF", "USDLTL", "USDLVL", "USDPLN", "USDRON", "USDSEK", "USDCHF", "USDNOK", "USDHRK", "USDRUB", "USDTRY", "USDAUD", "USDBRL", "USDCAD", "USDCNY", "USDHKD", "USDIDR", "USDILS", "USDINR", "USDKRW", "USDMXN", "USDMYR", "USDNZD", "USDPHP", "USDSGD", "USDTHB", "USDZAR", "USDISK" )&env=store://datatables.org/alltableswithkeys" );
         case "GBP":   ErrorFLAG = False; return( "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ( "GBPEUR", "GBPJPY", "GBPBGN", "GBPCZK", "GBPDKK", "USDGBP", ...  )&env=store://datatables.org/alltableswithkeys" );
         case "JPY":   ErrorFLAG = False; return( "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ( "GBPJPY", "JPYBGN", ...  )&env=store://datatables.org/alltableswithkeys" );
         case  ... :   ErrorFLAG = False; return( ... );
         case default:                    return( "" );
       }
设计用于以后在:

 bool   anErrorFLAG  = False;
 ...
 string aQuerySTRING = sendMeTheYahooApiQuerySTRING( "DKK", anErrorFLAG );
 assert( !anErrorFLAG );
 ...
这种方法依赖于Y!侧面处理,详见API规范:

       <execute>
                var pairs = [];

                for each (var p in pair.toString().replace(/\s+/g,'').split(','))
                    pairs.push(p.toUpperCase() + '=X');

                var q = "select * from csv where url='http://download.finance.yahoo.com/d/quotes.csv?s="+ pairs.join(',') +
                    "&f=snl1d1t1ab'" + " and columns='Symbol,Name,Rate,Date,Time,Ask,Bid'",
                    results = y.query(q),
                    rates = <rates/>,
                    rows=results.results.row;

                for each (var row in rows) {
                    for each (var item in row.*) 
                        row[item.localName()]=item.text().toString().replace(/"/g, '');

                    var tag = row.Symbol.text().toString().substr(0,6);
                    delete row.Symbol;
                    rates.rate += <rate id={tag}>{row.*}</rate>;
                }
                response.object = rates;
                </execute>
其中包含以下简单数据:

 "GBPJPY=X","GBP/JPY",146.7220

没有了那辆车!单独汇率的侧面重新打包。

最简单的方法是准备一个静态转换器,负责返回预组装的列表,它将返回(发送)Yahoo API查询字符串

一个简单的实体模型示例是:

string sendMeTheYahooApiQuerySTRING(  const string aCurrency1 = "USD",
                                            bool  &ErrorFLAG  = True
                                      ){
       switch( aCurrency1 ){
         case "USD":   ErrorFLAG = False; return( "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ( "USDEUR", "USDJPY", "USDBGN", "USDCZK", "USDDKK", "USDGBP", "USDHUF", "USDLTL", "USDLVL", "USDPLN", "USDRON", "USDSEK", "USDCHF", "USDNOK", "USDHRK", "USDRUB", "USDTRY", "USDAUD", "USDBRL", "USDCAD", "USDCNY", "USDHKD", "USDIDR", "USDILS", "USDINR", "USDKRW", "USDMXN", "USDMYR", "USDNZD", "USDPHP", "USDSGD", "USDTHB", "USDZAR", "USDISK" )&env=store://datatables.org/alltableswithkeys" );
         case "GBP":   ErrorFLAG = False; return( "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ( "GBPEUR", "GBPJPY", "GBPBGN", "GBPCZK", "GBPDKK", "USDGBP", ...  )&env=store://datatables.org/alltableswithkeys" );
         case "JPY":   ErrorFLAG = False; return( "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ( "GBPJPY", "JPYBGN", ...  )&env=store://datatables.org/alltableswithkeys" );
         case  ... :   ErrorFLAG = False; return( ... );
         case default:                    return( "" );
       }
设计用于以后在:

 bool   anErrorFLAG  = False;
 ...
 string aQuerySTRING = sendMeTheYahooApiQuerySTRING( "DKK", anErrorFLAG );
 assert( !anErrorFLAG );
 ...
这种方法依赖于Y!侧面处理,详见API规范:

       <execute>
                var pairs = [];

                for each (var p in pair.toString().replace(/\s+/g,'').split(','))
                    pairs.push(p.toUpperCase() + '=X');

                var q = "select * from csv where url='http://download.finance.yahoo.com/d/quotes.csv?s="+ pairs.join(',') +
                    "&f=snl1d1t1ab'" + " and columns='Symbol,Name,Rate,Date,Time,Ask,Bid'",
                    results = y.query(q),
                    rates = <rates/>,
                    rows=results.results.row;

                for each (var row in rows) {
                    for each (var item in row.*) 
                        row[item.localName()]=item.text().toString().replace(/"/g, '');

                    var tag = row.Symbol.text().toString().substr(0,6);
                    delete row.Symbol;
                    rates.rate += <rate id={tag}>{row.*}</rate>;
                }
                response.object = rates;
                </execute>
其中包含以下简单数据:

 "GBPJPY=X","GBP/JPY",146.7220
没有了那辆车!个别汇率的侧面重新包装。

可能重复的可能重复的