Próbuję wysłać dane do serwera i otrzymać odpowiedź w formacie JSON. Problem polega na tym, że serwer musi zwrócić "sukces" lub "niepowodzenie", ale zwraca "(null)".Błąd kakao 3840 przy użyciu JSON (iOS)
Oto zwrócił błąd:
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=XXXXXXXXX {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
Czy to możliwe, że jest błąd w skrypcie serwera?
Oto mój funkcja wysyłania danych i otrzymujemy odpowiedź:
- (void) putData:(NSString *)parameter valor:(NSString *)valor {
NSString *rawString = [NSString stringWithFormat:@"%@=%@", parameter, valor];
NSData *data = [rawString dataUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:@"http://www.xxx.xxx/xxx.php"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"PUT"];
[request setHTTPBody:data];
NSURLResponse *response;
NSError *error;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
NSLog(@"responseData: %@ error: %@", json, error);
}
Co mówisz, jest to, że może być pomyłka w kodzie PHP? – iosdevrocks
Jestem prawdopodobnie JSONP, więc JSON, ale zawinięty w metodę o nazwie coś podobnego do callback (_wszystkie twoje JSON tutaj); – RickiG
@iosdevrocks, w moim przypadku problem był w php code – Alex