Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Can';无法理解使用AFNetworking在服务器中发布数据的响应_Ios_Objective C_Json_Afnetworking 2 - Fatal编程技术网

Ios Can';无法理解使用AFNetworking在服务器中发布数据的响应

Ios Can';无法理解使用AFNetworking在服务器中发布数据的响应,ios,objective-c,json,afnetworking-2,Ios,Objective C,Json,Afnetworking 2,我使用AFNetworking将包含设备中联系人详细信息的阵列发布到服务器。我不明白我得到的回应。下面是我的代码 NSDictionary *parameters = @{@"UserContacts": contactsArray}; AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] init]; manager.requestSerializer = [AFJSONRequestSerializer serialize

我使用AFNetworking将包含设备中联系人详细信息的阵列发布到服务器。我不明白我得到的回应。下面是我的代码

NSDictionary *parameters = @{@"UserContacts": contactsArray};
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);

}];
答案是

 RESPONSE : <4e6f2044 61746120 55706c6f 61646564>
响应:

谁能解释一下这个回答是什么。这是ios还是php的问题。提前感谢。

请删除这一行试试

manager.responseSerializer = [AFHTTPResponseSerializer serializer];

希望有帮助

将断点放在
成功
回调中,当它命中时,调试区域将显示
响应对象
变量的内容。

您需要更改

manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];

我使用AFNetworing调用API的方法是

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

NSDictionary *params = @{@"action": @"actionOfAPI",
                         @"Param1": Param1,
                         @"Param2": Param2};

[manager GET/POST:kBaseUrl parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {

    NSLog(@"Response: %@", responseObject);

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

    NSLog(@"Error: %@", error);
}];
如果您遇到相同的错误,那么只需在项目中搜索“text/json”,并在AFNetworking类中的所有位置进行如下更改

self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil];

错误:无法完成该操作。(Cocoa错误3840。)Cocoa错误3840是一个JSON解析错误(如果您在堆栈溢出上搜索它,您将遇到关于它的现有问题)。我建议您通过JSON验证器从web服务运行输出JSON,以检查它是否符合规范。这意味着“没有上传数据”。这是通过执行
[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]
获得的结果。但是似乎您对序列化程序设置有问题。您得到的响应是NSData格式的,您需要将其转换回UTF8。
self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil];