1

iOS プログラミングは初めてで、設計中の iPad アプリで株価と株式の詳細を表示したいと考えています。Google ファイナンスまたは yahoo ファイナンスの 2 つのオプションを検討しています。

サイトに URL リクエストを送信し、Xcode で応答を処理するにはどうすればよいですか?

yahooにはYQLサービスがあることがわかりましたが、yahooのドキュメントをオンラインで読んでも、それを機能させる方法について頭を悩ませることができないので、避けたいと思っています。Google API を見てみましたが、それを統合して在庫の詳細を要求する方法がわかりません。私は URL リクエスト ルートをたどり、URL リクエストからの応答を処理するための基本的なコードを作成することにしました。 .

4

2 に答える 2

2

混乱を避けるために、回答全体を削除して書き直しました。

YQL を使用して yahoo ファイナンス API をクエリする方法を調べたところ、最終的に次のようになりました。

リクエスト文字列を完全に定式化するための完成したコードを次に示します。これを NSMutableURLRequest の NSURL に直接投げることができ、json 応答を取得します。このコードは、各ティッカーのすべてのプロパティをフェッチします。これを変更するには、プレフィックスのこのビットの * の代わりに個々のプロパティを指定する必要があります (select%20*%20)。この投稿のサンプル コードから一部を抜粋しました。非同期リクエストに適合するようにコードを修正しました (コードの一部が古くなっているように見え、機能していなかったため、コードも少し変更しました。

#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];

この回答を使用して、リクエストを作成し、返された json を使用する方法を確認してください。基本的に変更が必要な部分は

NSURL *url = [NSURL URLWithString:queryURL];

また、JSON を送信していないため、それを反映するようにリクエストを変更する必要があります。

于 2012-05-09T19:06:39.473 に答える
0

私のScriptScraperツールも同様のことを行い、株式を Excel テーブルに読み込みます。

乾杯、マーティン

于 2012-07-03T19:36:50.833 に答える