gpt4 book ai didi

objective-c - 使用 JSON (iOS) 的 Cocoa 错误 3840

转载 作者:IT老高 更新时间:2023-10-28 11:46:54 29 4
gpt4 key购买 nike

我正在尝试向服务器发送数据并接收 JSON 格式的响应。问题是服务器必须返回“成功”或“失败”,但它返回“(null)”。

这是返回的错误:

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

有没有可能是服务器脚本出错了?

这是我发送数据和接收响应的函数:

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

最佳答案

除非您将选项 NSJSONReadingAllowFragments 传递给 [NSJSONSerialization JSONObjectWithData:options:error:],否则来自服务器的响应必须是有效的 JSON,其顶级容器是数组或字典。

例如:

    { "response" : "Success" }

附:如果你想要一个可变字典,你还必须在你的选项中包含 NSJSONReadingMutableContainers

关于objective-c - 使用 JSON (iOS) 的 Cocoa 错误 3840,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14171111/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com