iOS - 连接 PHP 页面时 AFNetworking 失败
Posted
技术标签:
【中文标题】iOS - 连接 PHP 页面时 AFNetworking 失败【英文标题】:iOS - AFNetworking failure while connecting PHP page 【发布时间】:2015-10-05 13:56:14 【问题描述】:我在 Cloud9 中创建了一个在线 php 页面,我可以在其中连接到 mysql 数据库并做任何我想做的事情。我可以在不使用 AFNetworking 的情况下从我的 ios 应用程序模拟器连接该页面。但是,我应该使用这个库并创建一个 POST 请求。 我的 POST 请求失败并出现此错误:
Error : Error Domain=NSCocoaErrorDomain Code=3840 "操作 无法完成。 (Cocoa 错误 3840。)”(JSON 文本未开始 带有数组或对象以及允许未设置片段的选项。) NSDebugDescription=JSON 文本不是以数组或对象开头并且 允许未设置片段的选项。
我的 Objective-C 代码是:
NSString *url = [URLFactory targetURL];
NSDictionary *dictionary = @
@"key" : @"value",
;
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:url parameters:dictionary success:^(AFHTTPRequestOperation *operation, id responseObject)
NSLog(@"Response : %@",responseObject);
failure:^(AFHTTPRequestOperation *operation, NSError *error)
NSLog(@"Here!");
NSLog(@"Error : %@",error);
];
还有 PHP:
<?php
header('Content-type: application/json');
$isPostRequest = $_SERVER['REQUEST_METHOD'] == 'POST';
if ($isPostRequest)
echo json_encode("done!");
?>
如您所见,我还没有做任何事情。我会检查参数,但现在我只想要连接。我看到“这里!”记录并得到错误。我做错了什么还是缺少了什么?我发现了一些关于这个错误的帖子,但它们并没有出现故障。所以我很困惑。
谢谢!
【问题讨论】:
【参考方案1】:尝试改变你的代码来创建一个像这样的数组:
echo json_encode(array("response" => "done!"));
然后在你的 iOS 代码中,获取响应对象:
NSArray *jsonObjects = [responseObject objectForKey:@"response"];
【讨论】:
非常感谢!我以为我的错误是关于 Objective-c,但您的解决方案有效:) 再次感谢您!以上是关于iOS - 连接 PHP 页面时 AFNetworking 失败的主要内容,如果未能解决你的问题,请参考以下文章
iOS 9.1 导致我的 JSON NSURL 连接到 PHP 页面时出错