在 afnetworking iOS 中获取字符串响应
Posted
技术标签:
【中文标题】在 afnetworking iOS 中获取字符串响应【英文标题】:Fetch a string response in afnetworking iOS 【发布时间】:2016-12-06 09:41:57 【问题描述】:我正在使用一个以字符串格式返回响应的网络服务,下面是响应表单
URLdecoded token: PjXoTuRmatcMCFXgQ43Jr8vb4Ux9mdqJyxYsVZ170NS76Q==
base64 decoded in byte: [B@16c1d8a7 random code in byte: [B@1076c79d newhash in byte: [B@662b1cdc concatData in byte: [B@1873e3eb Base64.encodeBase64String(concatData): PjXoTuRmatcMCFXgQ43Jr8vb4Ux9mdqJyxYsVZ170NS76Q==
localToken: PjXoTuRmatcMCFXgQ43Jr8vb4Ux9mdqJyxYsVZ170NS76Q%3D%3D
sms code: 225182;
OK - International
我的问题是如何获取它,因为它目前正在失败块中,并且错误显示响应不是对象类型。
【问题讨论】:
你得到什么错误? 你的代码是什么?你把什么作为 responseSerializer? 错误域 = NSCocoaErrorDomain 代码 = 3840 “JSON 文本没有以数组或对象开头,并且允许未设置片段的选项。” UserInfo=NSDebugDescription=JSON 文本没有以数组或对象开头,并且允许未设置片段的选项。 以上是我遇到的错误 manager.responseSerializer.acceptableContentTypes= [NSSet setWithObject:@"text/plain"];使用它作为响应序列化器 【参考方案1】:试试这个-manager.responseSerializer = [AFHTTPResponseSerializer serializer];
【讨论】:
manager.responseSerializer = [AFHTTPResponseSerializer 序列化器];【参考方案2】:您可能会执行以下操作:
AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
[serializer setStringEncoding:NSUTF8StringEncoding];
manager.requestSerializer=serializer;
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
在你的成功块中,你需要通过 responseObject 初始化你的字符串,像这样:
NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
这里的字符串是你正确的回答。
【讨论】:
以上是关于在 afnetworking iOS 中获取字符串响应的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 使用 AFNetworking 获取图像保持缓存
最佳实践以及如何在 Symfony2 中找到从 iOS AFNetworking 获取 POST 数据并在 GET 中返回 JSON?
使用 AFNetworking ios xcode 获取 gmail 邮件列表