AFNetworking POST 崩溃
Posted
技术标签:
【中文标题】AFNetworking POST 崩溃【英文标题】:Crashes on AFNetworking POST 【发布时间】:2016-03-04 14:24:06 【问题描述】:我正在尝试将 json 字符串作为 NSString 发布。但是在发布请求时,Xcode 崩溃并打印:“JSON 写入中的***类型无效”。这是我的代码:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager POST:signupBaseURLString parameters:myJSONStringObject success:^(AFHTTPRequestOperation *operation, id responseObject)
NSLog(@"responseObject is %@", responseObject);
failure:^(AFHTTPRequestOperation *operation, NSError *error)
NSLog(@"post request error is %@", error);
];
【问题讨论】:
你的 jsonstring 对象有效吗? 看到一次***.com/questions/27166711/… 如何创建 myJsonStringObject。您不必将其设为字符串,因为请求序列化程序会为您执行此操作。 我的 json(作为字典)是一个有效的 json 对象。但是,myJSONStringObject 当然不是有效的 json,因为它是 NSString 格式。 服务器,我正在发送数据,期待 json 作为字符串格式,这就是我使用字符串作为参数的原因。你能帮我把 NSString 发送到服务器吗?请求序列化程序似乎没有使它成为一个字符串,或者我做错了什么,请谁能帮帮我? 【参考方案1】:参数应该是 NSDictionary,而不是字符串。我假设myJSONStringObject
是一个字符串。如果字符串是 JSON 对象的编码,则需要将其转回字典,或者最好使用您编码的字典。
【讨论】:
是的,它是字符串,因为我需要用字符串格式发送。parameters
需要是 NSDictionary,而不是字符串。阅读文档:cocoadocs.org/docsets/AFNetworking/2.0.0/Classes/…:以上是关于AFNetworking POST 崩溃的主要内容,如果未能解决你的问题,请参考以下文章
使用GCD中的dispatch_semaphore(信号量)处理一个界面多个请求(把握AFNet网络请求完成的正确时机)