gpt4 book ai didi

ios - AFNetworking 中的 JSON 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:42:49 24 4
gpt4 key购买 nike

我正在尝试使用 AFNetworking 库向这样的 URL 发送发布请求:

https://m.com/api/2.0/basic/sim_balance.json

这需要 URL 中的用户名和密码作为我的参数(作为 NSDictionary)。

URL 会像这样返回一个 JSON:

{
"valid_until": "2011-05-05 22:13:28",
"sms": 0,
"sms_super_on_net_max": 300,
"voice_super_on_net": 0,
"credits": "0.00",
"bundles": [],
"is_expired": true,
"sms_super_on_net": 0,
"voice_super_on_net_max": 3600,
"data": 0
}

这是我的请求函数:

 +(void) request:(NSString *)endpoint : (NSDictionary *) parameters
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:endpoint parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
}

我总是把这个当作错误:

Error: 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=0x904b7e0 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

我验证了 JSON,服务器正在发送有效的 JSON。

有人可以帮我解决这个问题吗?

最佳答案

要让 AFHTTPRequestOperationManager 将请求体序列化为 JSON,需要设置其 requestSerializer 的值:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager POST:....];

如果不设置 requestSerializer 属性,那么管理器对象将使用 x-www-form-urlencoded默认序列化。

但请注意,默认情况下,AFHTTPRequestOperationManager 将处理响应 正文中的 JSON。

关于ios - AFNetworking 中的 JSON 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24529755/

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