在发出HTTP请求时接收两次响应



我正在使用POST方法对服务器进行HTTP调用。当点击注册按钮时,我调用下面给出的服务

 NSURL * url=[NSURL URLWithString:[NSString         stringWithFormat:@"http://offers2win.com/api/v1/users?user[email]=%@&user[password]=%@&user[password_confirmation]=%@",username,password,confirmpassword]];
request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
connection=[[NSURLConnection alloc] initWithRequest:request delegate:self];

并将响应方数据保存在字典中

 NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
returnString  = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:[returnString dataUsingEncoding:NSUTF8StringEncoding] options:kNilOptions error:nil];

但该代表被呼叫两次

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
 NSLog(@"Recieved");
}

原因可能是什么?而且得到回应也需要很长时间。

这不是错误。苹果公司已经在NSURLConnectionDataDelegate协议参考:中谈到了这一点

在极少数情况下,例如在HTTP加载的情况下加载数据的内容类型为multipart/x-mixed-replacement委托将接收多个连接:didReceiveResponse:消息如果发生这种情况,代理应丢弃所有数据以前通过连接传递:didReceiveData:,并且应该准备处理由新报告的URL响应。

检查此处:NSURLConnectionDataDelegate协议参考

最新更新