私はいくつかのチュートリアルに従いましたが、投稿リクエストを行うことに行き詰まっています。URLに3つのパラメーターを送信し、応答を処理したいだけです。そして、非同期である必要があります。ビューで1つずつ表示したい画像が得られるからです。
みんな助けてくれませんか?
これについては、こちらで詳しく説明しています。
しかし、これから説明するように、私のやり方はもっと簡単であることがわかりました。それでも、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);
を使用しNSURLRequest
ます。バックグラウンドでファイルをダウンロードし、代理人の通知を受け取ったら表示することができます:事前定義された宛先へのダウンロード