これは私の最初の IOS プロジェクトです。ログインを機能させるのに苦労しています。サイトには別の URL への meta_refresh があります。meta_refresh の URL に別のリクエストを送信しようとしましたが、アプリがハングします。私は何か間違ったことをしていると確信していますが、XCode 4.4 を使用しているため、多くの NSURLConnection デリゲート メソッドが廃止されました。
これが私がやっていることです:
NSString *urlAsString = baseURL;
urlAsString = [urlAsString stringByAppendingString:@"?user[login]=username"];
urlAsString = [urlAsString stringByAppendingString:@"&user[password]=password"];
urlAsString = [urlAsString stringByAppendingString:@"&origin=splash"];
NSURL *url = [NSURL URLWithString:urlAsString];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
[urlRequest setTimeoutInterval:30.0f];
[urlRequest setHTTPMethod:@"POST"];
NSURLResponse *response = nil;
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];
if([data length] > 0 && error == nil){
NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"HTML = %@", html);
NSRange obj = [html rangeOfString:@"http-equiv=\"refresh\""];
NSInteger len = obj.length;
} else if([data length] == 0 && error == nil) {
NSLog(@"No data was returned.");
} else {
NSLog(@"Error happened = %@", error);
}
ここに私が得ているものがあります:
別の質問は、非同期接続を使用する必要があることを読んだことです。問題は、サイトからスクレイピングしたデータを画面に表示する必要があることです。データが返される前に画面を表示すると、データが何も表示されません。または、これがどのように機能するか理解していませんか?
ありがとう。--トニー