【问题标题】:Downloading Stock quotes to App将股票报价下载到应用程序
【发布时间】:2012-05-09 19:00:03
【问题描述】:

我是 iOS 编程新手,想在我正在设计的 iPad 应用程序中显示股票报价和股票详细信息。我在看两个选项我在看谷歌金融或雅虎金融。

我将如何向他们的网站发送 url 请求,然后在 Xcode 中处理回复?

我看到 yahoo 有 YQL 服务,但我无法理解如何让它工作,尽管在线阅读了一些 yahoo 文档,所以我希望避免它。我已经查看了 google api,但我不知道如何集成它并让它请求库存详细信息。我决定通过 url 请求路由并尝试编写一些基本代码来处理来自 url 请求的回复,因为这似乎是最简单的选择(虽然我不知道在搜索股票时这将如何工作) .

【问题讨论】:

    标签: xcode ipad yahoo-finance stockquotes google-finance


    【解决方案1】:

    刚刚删除了我的整个答案并重写了它以避免混淆:

    我研究了如何使用 YQL 查询 yahoo Finance API,结果如下:

    这里是完整的代码来完整地制定请求字符串。您可以将它直接扔到 NSMutableURLRequest 的 NSURL 中,并会得到一个 json 响应。此代码将获取每个代码的每个属性。要更改此设置,您需要在前缀 (select%20*%20) 的该位中指定单个属性而不是 *。 我从this post 中的示例代码中提取了一部分。我修改了代码以适应异步请求(也稍微更改了它,因为它的一部分似乎已经过时并且无法正常工作。

    #define QUOTE_QUERY_PREFIX @"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20("
    #define QUOTE_QUERY_SUFFIX @")%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json"
    
    + (NSString *)formulateYQLRequestFor:(NSArray *)tickers
    {
        NSMutableString *query = [[NSMutableString alloc] init];
        [query appendString:QUOTE_QUERY_PREFIX];
        for (int i = 0; i < [tickers count]; i++) 
        {
            NSString *ticker = [tickers objectAtIndex:i];
            [query appendFormat:@"%%22%@%%22", ticker];
            if (i != [tickers count] - 1)
            {
                [query appendString:@"%2C"];
            }
        }
        [query appendString:QUOTE_QUERY_SUFFIX];
    
        return query;
    }
    

    您可以通过执行以下操作来调用它:

    NSArray *tickerArray = [[NSArray alloc] initWithObjects:@"AAPL", @"VZ", nil];
    NSString *queryURL = [MyClass formulateYQLRequestFor:tickerArray];
    

    使用this answer查看如何制定请求并使用返回的json。 基本上你需要改变的部分是

    NSURL *url = [NSURL URLWithString:queryURL];
    

    您也没有发送 JSON,因此您应该更改请求以反映这一点。

    【讨论】:

      【解决方案2】:

      我的ScriptScraper 工具做了类似的事情,它将股票加载到 Excel 表格中。

      干杯, 马丁

      【讨论】:

        猜你喜欢
        • 2011-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多