2012-11-08 28 views
5

Tôi đang viết một ứng dụng gọi một dịch vụ web JSON. Nó hoạt động tốt khi iPhone được kết nối với mạng WiFi. Nhưng khi nó đang sử dụng mạng dữ liệu di động thì nó không hoạt động. Tôi nhận được một lỗi được trả về từ [NSJSONSerialization JSONObjectWithData: tùy chọn dữ liệu: kNilOptions error: & error]. Đây là mã của tôi:Dịch vụ web gọi điện của iOS không hoạt động trên 4g

-(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; 
} 

Và các lỗi được trả lại là:

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.} 
+0

Phản hồi được trả về là gì? – simbolo

+0

bạn có giải pháp nào cho việc này không? – brush51

Trả lời

0

Âm thanh nghe giống như là bạn đang dữ liệu bạn JSON mã hóa hoặc kết quả là hỗn hợp lên.

Đặt cược tốt nhất ở đây là in ra tất cả dữ liệu thô hoặc sử dụng một cái gì đó như Charles Proxy (http://charlesproxy.com) để chặn các yêu cầu mạng và xem điều gì đang diễn ra.

Các vấn đề liên quan