1

アプリケーション用の認証モジュールを作成しようとしています。ユーザーが以前に保存されているかどうかを確認したい。この目的のために、このユーザーが以前に保存されているかどうかをデータベースで確認する必要があります。

サーバーのバックエンドに HTTP リクエストを送信する予定です。したがって、以下に示すように、サンプルのサーバー側リクエストをサーバーに作成しました。

- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender
{
    if( [identifier isEqualToString:@"login"]){

        NSString *curUrl = [self.serverUrl stringByAppendingString:@"/test"];
        AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
        NSDictionary *parameters = @{@"foo": @"bar"};
        [manager POST:curUrl parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
            NSLog(@"JSON: %@", responseObject);
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            NSLog(@"Error: %@", error);
        }];

        return YES;
    }else if ([identifier isEqualToString:@"signup"]) {
        return YES;
    }else{
        return NO;
    }
}

ただし、以下に示す例外に直面しています。

*** Assertion failure in -[AFHTTPRequestOperation initWithRequest:],
 /myproj/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.m:164
2013-11-11 09:17:17.005 myproj[354:60b] *** Terminating app due to uncaught exception
 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: urlRequest'
*** First throw call stack:

(0x2eb05f53 0x38edc6af 0x2eb05e2d 0x2f4ad183 0x1a3d15 0x19cb17 0x19f3ad 0x19fb31 0xb7565 
0x3127b603 0x3127b3c1 0x31325637 0x31361d7b 0x313606b3 0x3135f705 0x3153a65b 0x312abf3f 
0x312abedf 0x312abeb9 0x31297b3f 0x312ab92f 0x312ab601 0x312a668d 0x3127ba25 0x3127a221 
0x2ead118b 0x2ead065b 0x2eacee4f 0x2ea39ce7 0x2ea39acb 0x3375a283 0x312dba41 0xb87a5 
0x393e4ab7)
libc++abi.dylib: terminating with uncaught exception of type NSException

このエラーが発生するのはなぜですか? AFNetworking の HTTP Post 要求は非同期ですか?

4

1 に答える 1

0

「NSInternalInconsistencyException」の問題を解決するために、AFHTTPRequestOperationManager の実装を確認できます: AFHTTPRequestOperationManager POST:parameters:success:failure: method source code

self.baseURL で結果の URLString を構築しています。これは既に作成されているため、結果の URL は正しくありません。この例外を修正するには、URL 構築コードを変更してみてください。

NSString *curUrl = @"/test";

また:

NSString *curUrl = @"test";
于 2013-11-11T10:59:43.513 に答える