我是iOS编程的新手,想要在我正在设计的iPad应用程序中显示股票行情和股票详细信息。我正在考虑两个选择,我正在考虑谷歌财经或雅虎财经。
我该如何向他们的网站发送一个url请求,然后在Xcode中处理回复呢?
我看到yahoo有一个YQL服务,但是我不知道如何让它工作,尽管我在网上读了一些yahoo的文档,所以我希望避免它。我看过google api,但我不知道如何集成它并让它请求股票详细信息。我已经决定通过url请求路线,并尝试编写一些基本代码来处理来自url请求的回复,因为这似乎是最简单的选择(尽管我不知道这在搜索股票时如何工作)。
发布于 2012-05-10 03:06:39
我只是删除了我的整个答案,并重写了它,以避免混淆:
我研究了如何使用YQL来查询yahoo finance API,结果如下:
下面是完整表示请求字符串的完整代码。您可以将此代码直接放入NSMutableURLRequest的NSURL中,并将获得json响应。此代码将获取每个滚动条的每个属性。要更改这一点,您需要指定单个属性,而不是前缀中此位中的*(选择%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,所以您应该更改请求以反映这一点。
发布于 2012-07-04 03:36:51
我的ScriptScraper工具做了类似的事情,它将股票加载到Excel表中。
干杯,马丁
https://stackoverflow.com/questions/10522440
复制相似问题