我正在使用AFJSONRequestOperation
请求服务器并解析返回的JSON响应,但是在解析时,我得到了这个错误:
NSDebugDescription = "JSON text did not start with array or object and option to allow fragments not set.";
我检查了API,它返回了JSON数据:
header('Content-type: text/json');
$arr[] = array("Message" => "update succeeded");
echo '{"Result":'.json_encode($arr).'}';
你知道怎么解决这个问题吗?
编辑
我尝试从浏览器调用API并将请求包含在url中,因此我得到了一个有效的JSON响应:
{"Result":[{"Message":"update succeeded"}]}
发布于 2015-05-16 18:56:25
首先,json_encode
整个对象,而不是将其分成几个部分。
其次,除非$arr包含多个元素(从上面的示例中看不出来),否则应该将其初始化为:
$arr = array("Message" => "update succeeded");
我仍然不确定这里还会有什么问题。您应该回显您的应用程序正在接收的内容,这应该表明问题所在。
发布于 2015-12-29 21:35:42
请使用可接受的内容类型。在您的text服务中,它应该只是纯文本。
以下是我的快速代码和修复:
let manager = AFHTTPRequestOperationManager()
manager.requestSerializer=AFJSONRequestSerializer()
manager.responseSerializer = AFHTTPResponseSerializer();
manager.GET(
baseURL + (webServiceType as String) + secureParam,
parameters:[:],
success:
{ (operation: AFHTTPRequestOperation!,
responseObject: AnyObject!) in
completion(obj: responseObject)
},
failure:
{ (operation: AFHTTPRequestOperation!,
error: NSError!) in
completion(obj: nil)
})
发布于 2016-02-18 21:38:35
检查是否在API的基本url前添加了/api/,如下所示
yourBasrUrl /api/api名称
https://stackoverflow.com/questions/15456396
复制相似问题