ios - AFNetworking 中的 JSON 错误
<p><p>我正在尝试使用 AFNetworking 库向这样的 URL 发送发布请求:</p>
<p> <a href="https://m.com/api/2.0/basic/sim_balance.json" rel="noreferrer noopener nofollow">https://m.com/api/2.0/basic/sim_balance.json</a> </p>
<p>这需要 URL 中的用户名和密码作为我的参数(作为 NSDictionary)。</p>
<p>URL 像这样返回 JSON:</p>
<pre><code>{
"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
}
</code></pre>
<p>这是我的请求函数:</p>
<pre><code> +(void) request:(NSString *)endpoint : (NSDictionary *) parameters
{
AFHTTPRequestOperationManager *manager = ;
[manager POST:endpoint parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
}
</code></pre>
<p>我总是将此视为错误:</p>
<pre><code>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.}
</code></pre>
<p>我验证了 JSON 并且服务器正在发送有效的 JSON。</p>
<p>有人可以帮我解决这个问题吗?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>要让AFHTTPRequestOperationManager将请求体序列化为JSON,需要设置其<code>requestSerializer</code>的值:</p>
<pre><code>AFHTTPRequestOperationManager *manager = ;
manager.requestSerializer = ;
;
</code></pre>
<p>如果您不设置 requestSerializer 属性,则管理器对象将使用 <a href="https://en.wikipedia.org/wiki/Application/x-www-form-urlencoded#The_application.2Fx-www-form-urlencoded_type" rel="noreferrer noopener nofollow">x-www-form-urlencoded</a>默认序列化。</p>
<p>但请注意,AFHTTPRequestOperationManager 默认会处理 <em>response</em> 正文中的 JSON。</p></p>
<p style="font-size: 20px;">关于ios - AFNetworking 中的 JSON 错误,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/24529755/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/24529755/
</a>
</p>
页:
[1]