只是刪除了我的全部答案,並重寫了它,以避免混淆:
我看着如何使用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,因此您應該更改請求以反映該問題。