iOS - 连接 PHP 页面时 AFNetworking 失败
iOS - AFNetworking failure while connecting PHP page
我在 Cloud9 中创建了一个在线 PHP 页面,我可以在其中连接到 MySQL 数据库并做任何我想做的事情。我可以在不使用 AFNetworking 的情况下从我的 iOS 应用程序模拟器连接该页面。但是,我应该使用这个库并创建一个 POST 请求。
我的 POST 请求失败并出现此错误:
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.)
{NSDebugDescription=JSON text did not start with array or object and
option to allow fragments not set.}
我的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!");
}
?>
如您所见,我还没有做任何事情。我会检查参数,但现在我只想要连接。我看到 "Here!" 日志并收到错误。我做错了什么还是缺少什么?我找到了一些关于这个错误的帖子,但它们并没有出现故障。所以我很困惑。
谢谢!
尝试更改您的代码以创建如下数组:
echo json_encode(array("response" => "done!"));
然后在您的 iOS 代码中,获取响应对象:
NSArray *jsonObjects = [responseObject objectForKey:@"response"];
我在 Cloud9 中创建了一个在线 PHP 页面,我可以在其中连接到 MySQL 数据库并做任何我想做的事情。我可以在不使用 AFNetworking 的情况下从我的 iOS 应用程序模拟器连接该页面。但是,我应该使用这个库并创建一个 POST 请求。 我的 POST 请求失败并出现此错误:
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.) {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
我的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!");
}
?>
如您所见,我还没有做任何事情。我会检查参数,但现在我只想要连接。我看到 "Here!" 日志并收到错误。我做错了什么还是缺少什么?我找到了一些关于这个错误的帖子,但它们并没有出现故障。所以我很困惑。
谢谢!
尝试更改您的代码以创建如下数组:
echo json_encode(array("response" => "done!"));
然后在您的 iOS 代码中,获取响应对象:
NSArray *jsonObjects = [responseObject objectForKey:@"response"];