只是删除了我的全部答案,并重写了它,以避免混淆:
我看着如何使用YQL查询雅虎财经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,因此您应该更改请求以反映该问题。