NSURLSession错误*崩溃*

时间:2015-04-07 18:29:53

标签: ios objective-c nsurlsession

我正在使用NSURLSession进行简单的POST请求。 我使用的是我在申请登录方面使用的相同方法。

现在我正在为用户制作一个忘记的针脚,我收到了这个错误:

  

- [NSMutableURLRequest absoluteURL]:无法识别的选择器发送到实例0x170209fd0   2015-04-07 11:47:26.443 ECP [358:9466] ***由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' - [NSMutableURLRequest absoluteURL]:无法识别的选择器发送到实例0x170209fd0'

我正在获得如下连接:

+(void)forgotPinWebServiceCompletionHandler:(ECPForgotPinCompletionHandler)ForgotPinCompletionBlock Username:(NSString *)data {
NSError *error;

NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
[sessionConfig setHTTPAdditionalHeaders:@{@"Accept":@"application/json"}];
[sessionConfig setTimeoutIntervalForRequest:60.0];

/*TEST*/
NSURL * Url = [NSURL URLWithString:[NSString stringWithFormat:@"http://Secure//ws/auth-code/"]];

NSMutableURLRequest *forgotPinRequest = [[NSMutableURLRequest alloc] initWithURL:Url];
[forgotPinRequest setHTTPMethod:@"POST"];
/*END TEST */

NSDictionary *credentials = [[NSDictionary alloc] initWithObjectsAndKeys:data,@"username", nil];
NSData *userData = [NSJSONSerialization dataWithJSONObject:credentials options:0 error:&error];
[forgotPinRequest setHTTPBody:userData];

NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig];
[session dataTaskWithURL:forgotPinRequest completionHandler:ForgotPinCompletionBlock];

}

我在方法

的最后一行收到错误
[session dataTaskWithURL:forgotPinRequest completionHandler:ForgotPinCompletionBlock];

我似乎无法弄清楚究竟是什么导致了这个问题以及我应该如何解决它。有什么可以帮我解决这个问题?

1 个答案:

答案 0 :(得分:2)

“forgotPinRequest”是“NSMutableURLRequest”,而dataTaskWithURL则期望它是简单的NSURL类型。这是它失败的地方。确保使用适当的NSMutableURLRequest方法来获取URL对象。