gpt4 book ai didi

ios - 如何使用 AFNetworking 创建 JSON 数组

转载 作者:行者123 更新时间:2023-11-29 10:40:17 25 4
gpt4 key购买 nike

我目前正在尝试创建一个 JSON 数组,就像我在这里做的那样:

NSURL *url = [NSURL URLWithString:currentJSON];
NSData *jsonData = [NSData dataWithContentsOfURL:url];
NSError *error = nil;
if (jsonData) {

result = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:&error];
}

效果很好。如果互联网连接不是很好,我希望它超时。

然后我去了 AFNetworking,在那里我写了这样的代码:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:currentJSON parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject)
{
NSError *error = nil;
result = [NSJSONSerialization JSONObjectWithData:responseObject
options:NSJSONReadingMutableContainers
error:&error];
[[NSUserDefaults standardUserDefaults] setObject:result forKey:@"All"];
[[NSUserDefaults standardUserDefaults] synchronize];
} failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
result = [[NSUserDefaults standardUserDefaults] mutableArrayValueForKey:@"All"];
}

但是这个方法总是运行到失败 怎么会呢?我做错了什么?

最佳答案

检查服务器是否使用正确的内容类型“application/json”发送 JSON。 AFNetowrking 开箱即用地检查它,如果收到其他内容(例如“文本/html”),将调用失败 block 。

此外,AFNetworking 还对开箱即用的对象进行 JSON 解析。 “id responseObject”已经是“[NSJSONSerialization JSONObjectWithData]”的结果。

如果您无法更改服务器发送的内容类型,您可以使用以下代码段将该内容类型添加到接受的类型

NSMutableSet *accepted = [NSMutableSet set];
[accepted addObject:@"text/html"];
[accepted addObject:@"application/json"];
manager.responseSerializer.acceptableContentTypes = accepted;

关于ios - 如何使用 AFNetworking 创建 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24867168/

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