我试图用NSURLConnection
发布数据。这是我的代码:
responseData = [[NSMutableData alloc]init];
self.regData=data;
NSString *postString = [NSString stringWithFormat:@"name=%@&email=%@®Id=%@unique_id=%@",self.regData.name,self.regData.email,self.regData.regId,UNIQUE_ID];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *req = [[NSMutableURLRequest alloc]initWithURL:url ];
NSData *postData = [postString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
[req setHTTPMethod:@"POST"];
[req setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-type"];
[req setValue:[NSString stringWithFormat:@"%d",[postData length]] forHTTPHeaderField:@"Content-Length"];
[req setHTTPBody:postData];
(void)[NSURLConnection connectionWithRequest:req delegate:self];
但是,我收到了这样的例外
NSInvalidArgumentException', reason: '-[MAAppDelegate connectionFailed]: unrecognized selector sent to instance 0x15d8b310'
*** First throw call stack:
(0x30fbaf53 0x3b2e46af 0x30fbe8e7 0x30fbd071 0x30f0c598 0x19cb83 0x318f43a3 0x318f42e7 0x318f5031 0x319804fd 0x30c280ef 0x30c26ae3 0x30c5831f 0x30eee719 0x30bbec3d 0x30bbeb0d 0x30bbe9a1 0x30f8618b 0x30f8565b 0x30f83e4f 0x30eeece7 0x30eeeacb 0x35bc7283 0x33790a41 0x187dbd 0x3b7ecab7)
libc++abi.dylib: terminating with uncaught exception of type NSException
请帮我解决这个问题。
答案 0 :(得分:1)
有几点想法:
您的错误消息似乎与您的代码示例无关,而是报告您尝试为您的应用委托调用名为connectionFailed
的方法。我假设您有一些代码试图通过该名称调用方法。您应该更新您的问题以包含该代码。
您可能需要add an exception breakpoint,以便识别导致此异常的代码行。这可以简化您对问题的诊断。
顺便说一句,您在unique_id
数据中POST
之前错过了&符号,因此即使修复了上述问题,此请求也无效。
您确实应该将参数转换为POST
数据。也许你没有任何需要在你的数据中转义的字符,但为了安全起见,你真的应该调用CFURLCreateStringByAddingPercentEscapes
百分比来逃避你的数据。有关示例NSString
类别的信息,请参阅this answer,您可以调用这些类别以正确的百分比转义数据。