1

私はいくつかのチュートリアルに従いましたが、投稿リクエストを行うことに行き詰まっています。URLに3つのパラメーターを送信し、応答を処理したいだけです。そして、非同期である必要があります。ビューで1つずつ表示したい画像が得られるからです。

みんな助けてくれませんか?

4

2 に答える 2

2

これについては、こちらで詳しく説明しています。

しかし、これから説明するように、私のやり方はもっと簡単であることがわかりました。それでも、SOやこの知識を提供する他の場所には多くの質問があります。

まず、パラメータを使用してリクエストを設定します。

- (NSData *)executePostCall {
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@", YOUR_URL]];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

    NSString *requestFields = [NSString stringWithString:@""];
    requestFields = [requestFields stringByAppendingFormat:@"parameter1=%@&", parameter1];
    requestFields = [requestFields stringByAppendingFormat:@"parameter2=%@&", parameter2];
    requestFields = [requestFields stringByAppendingFormat:@"parameter3=%@", parameter3];

    requestFields = [requestFields stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSData *requestData = [requestFields dataUsingEncoding:NSUTF8StringEncoding];
    request.HTTPBody = requestData;
    request.HTTPMethod = @"POST";

    NSHTTPURLResponse *response = nil;
    NSError *error = nil;
    NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
    if (error == nil && response.statusCode == 200) {
      NSLog(@"%i", response.statusCode);
    } else {
      //Error handling
    }

    return responseData;
}

アプリケーションがロックされて眉をひそめられるため、メインスレッドでこれを実行できないため、これはブロックにまとめる必要があります。そのため、このリクエストをまとめるために次のことを行います。あなた次第の詳細の:

dispatch_queue_t downloadQueue = dispatch_queue_create("downloader", NULL);

dispatch_async(downloadQueue, ^{
  NSData *result = [self executePostCall];
  dispatch_async(dispatch_get_main_queue(), ^{
    // Handle your resulting data
  });
});
dispatch_release(downloadQueue);
于 2012-07-04T15:30:56.207 に答える
0

を使用しNSURLRequestます。バックグラウンドでファイルをダウンロードし、代理人の通知を受け取ったら表示することができます:事前定義された宛先へのダウンロード

于 2012-07-04T15:18:01.447 に答える