Веб-служба вызовов iOS не работает на 4g

Я пишу приложение, которое вызывает веб-службу JSON. Он отлично работает, когда iPhone подключен к сети Wi-Fi. Но когда он использует сотовую сеть передачи данных, он не работает. Я получаю сообщение об ошибке [NSJSONSerialization JSONObjectWithData: параметры данных: ошибка kNilOptions: & ошибка]. Вот мой код:

-(BOOL) CallService {
    NSError *error;
    NSData *paramData = [NSJSONSerialization dataWithJSONObject:self.parameter    options:kNilOptions error:&error];

    NSString *serviceUrl = [[NSString alloc] initWithFormat:@"%@%@", self.webHost, self.serviceName];
    NSURL *url = [NSURL URLWithString:serviceUrl];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [request setHTTPMethod:@"POST"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [request setValue:@"json" forHTTPHeaderField:@"Data-Type"];
    [request setValue:[NSString stringWithFormat:@"%d", [paramData length]]  forHTTPHeaderField:@"Content-Length"];
    [request setHTTPBody:paramData];
    NSError *errorReturned = nil;
    NSURLResponse *theResponse =[[NSURLResponse alloc]init];
    NSData *data = [NSURLConnection sendSynchronousRequest:request
                                         returningResponse:&theResponse
                                                     error:&errorReturned];

    BOOL retVal = FALSE;

    if (errorReturned){
        //...handle the error
        NSLog(@"%@", errorReturned.description);
    }
    else {
        self.serviceResult = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
        NSLog(@"%@", error);
        retVal = (BOOL)[self.serviceResult objectForKey:@"Success"];
    }

    return retVal;
}

И возвращается ошибка:

purgeIdleCellConnections: found one to purge conn = 0x1d04d710
2012-11-07 20:17:43.776 iPressBoxx-iPhone[733:907] 
Error Domain=NSCocoaErrorDomain 
Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" 
(JSON text did not start with array or object and option to allow fragments not set.)
 UserInfo=0x1d04eff0 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

person Dan    schedule 08.11.2012    source источник
comment
Какой ответ возвращается?   -  person simbolo    schedule 02.12.2012
comment
у вас есть какое-нибудь решение для этого?   -  person brush51    schedule 14.12.2012


Ответы (1)


Звучит для меня так, как будто вы данные, которые вы кодируете JSON, или результат перепутан.

Лучше всего распечатать все необработанные данные или использовать что-то вроде Charles Proxy (http://charlesproxy.com) для перехватите сетевые запросы и посмотрите, что происходит.

person Glen T    schedule 24.12.2012