Я звоню серверу, запрашивая данные JSON, используя NSURLConnection.
По какой-то причине я получаю часть ответа. Если я нажму URL-адрес через браузер, ответ будет правильным. Странно то, что это происходит только иногда. Поэтому мне трудно отлаживать проблему.
Затем, когда ответ не завершен, я получаю следующую ошибку: Error Domain=NSCocoaErrorDomain Code=3840 «Операция не может быть завершена. (Ошибка Cocoa 3840.)» (Недопустимое значение вокруг символа 0.) UserInfo= 0xa4634a0 {NSDebugDescription=Недопустимое значение около символа 0.} { NSDebugDescription = "Недопустимое значение около символа 0."; я>
Я предполагаю, что это также может быть проблема с самим сервером. Вот мой код:
-(void) getShareHistory:(NSString *)range paging:(NSInteger *)page{
NSString *post = [NSString stringWithFormat:@"range=%@&paging=%@",
range,
[NSString stringWithFormat:@"%ld",(long)page]];
NSString *url = [NSString stringWithFormat:@"http://www/domai.com/handle_share_links.php?action=history"];
NSData *post_data = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [post_data length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setCachePolicy:NSURLRequestUseProtocolCachePolicy];
[request setURL:[NSURL URLWithString:url]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:post_data];
self.shareHistoryConn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)response{
NSString *strData = [[NSString alloc]initWithData:response encoding:NSASCIIStringEncoding];
NSLog(@"response %@",strData);
NSError *jsonParsingError = nil;
if(connection == self.shareHistoryConn)
{
NSArray *data = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingAllowFragments error:&jsonParsingError];
if(!jsonParsingError)
{
[[self delegate] onGetShareHistorySuccess:data];
}else{
[[self delegate] onGetShareHistoryFailed:jsonParsingError];
}
}
Заранее спасибо.