无法使用 AFNetworking 将阵列发布到服务器
Posted
技术标签:
【中文标题】无法使用 AFNetworking 将阵列发布到服务器【英文标题】:Failed to post an array to server using AFNetworking 【发布时间】:2016-02-26 05:03:15 【问题描述】:我使用 AFNetworking 将包含设备中联系人详细信息的数组发布到服务器。下面是我的代码。
NSDictionary *parameters = @@"UserContacts": contactsArray;//contactsArray is NSMutableArray
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] init];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
[manager POST:baseUrl parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject)
NSLog(@"RESPONSE : %@",responseObject);
failure:^(NSURLSessionDataTask *task, NSError *error)
NSLog(@"Error: %@", error.localizedDescription);
];
我得到的回复是
响应:“失败”通知:未定义索引:C:\xampp\htdocs\creator\php\controller\contactsync.php 中的 UserContacts 在线101
php代码如下
public function insertios()
if(!isset($_REQUEST['UserContacts']))
echo json_encode('failed');
$contact = $_REQUEST['UserContacts'];
echo $contact;
else
echo json_encode('Success');
请告诉我哪里出错了。
【问题讨论】:
【参考方案1】:您应该使用 php://input
只读流来访问帖子数据,而不是像这样的 $_REQUEST
<?php
$postdata = file_get_contents('php://input');
?>
之后,您可以根据内容类型解码您的帖子数据。
您已经使用 NSDictionary 来绑定在 PHP 服务器上被视为 json 字符串的数据,因此您必须通过 php 输入流包装器读取请求数据。
【讨论】:
以上是关于无法使用 AFNetworking 将阵列发布到服务器的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 AFNetworking 将 iOS 连接到 asp.net webservices
无法理解使用 AFNetworking 在服务器中发布数据的响应
无法在 Today Extension 上使用 AFNetworking