Ios 使用AFNetworking库在“shouldPerformSegueWithIdentifier”操作中执行HTTP Post请求

Ios 使用AFNetworking库在“shouldPerformSegueWithIdentifier”操作中执行HTTP Post请求,ios,afnetworking-2,Ios,Afnetworking 2,我正在尝试为我的应用程序编写一个身份验证模块。我想检查用户是否在之前保存。为此,我必须检查我的数据库是否保存了该用户 我计划向我的服务器后端发出HTTP请求。因此,我向服务器发出了一个示例服务器端请求,如下所示: - (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender { if( [identifier isEqualToString:@"login"]){ NS

我正在尝试为我的应用程序编写一个身份验证模块。我想检查用户是否在之前保存。为此,我必须检查我的数据库是否保存了该用户

我计划向我的服务器后端发出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
但是,我面临一个例外,如下所示:

- (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请求是异步的吗?

为了解决NSInternalinconsistencException的问题,我们可以看看AFHTTPRequestOperationManager的实现:

它正在使用self.baseURL构造结果URLString。您已经构建了此url,因此结果url不正确。要修复此异常,请尝试更改url构造代码:

NSString *curUrl = @"/test";
或:


方法POST:参数:成功:失败:是异步的。它在后台线程中结束执行后调用成功或失败块,并在后台操作队列中创建运行的AFURLConnectionOperation。如何发出同步HTTP请求?我想您不需要同步请求。同步操作将阻塞主线程,UI将冻结。最佳实践是在请求执行时显示预加载程序,如MBProgressHUD,并在请求完成时隐藏它。Ok。但是,代码引发了异常上面的问题中也给出了完全异常:由于未捕获的异常而终止应用程序“NSInternalInconsistencyException”,原因:“无效参数不满足:urlRequest”如何修复此错误?ankakusu,无问题:如果您的问题已解决,请接受此问题的答案。Opedge,我意识到问题出在下一个阶段。该代码段工作正常,但在下一个阶段,出现了一个bug。不过,还是感谢您的回复。