如何从AFNetworking中的POST请求中读取一个简单的字符串(No JSON)

 梨依籽_852 发布于 2023-02-04 19:25

我正在使用AFNetworkingPOST通过POST与服务器通信,它使用包含我需要的信息的简单字符串进行响应.我正在使用以下代码:

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST: MY_URL
   parameters: MY_PARAMETERS
      success:^(AFHTTPRequestOperation *operation, id responseObject) {
        //do something
      }
      failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        //etc.
      }];

但是,似乎AFNetworking期望每个响应都是JSON格式,因为我在执行请求时遇到此错误:

Error Domain = NSCocoaErrorDomain Code = 3840"操作无法完成.(Cocoa error 3840.)"(JSON文本不是以数组或对象开头,而是选项允许未设置片段.)UserInfo = 0x1566eb00 {NSDebugDescription = JSON text没有从数组或对象和选项开始,以允许未设置片段.}

我如何判断AFNetworking响应不是JSON对象?我已经看到了涉及的东西AFHTTPClient,但它似乎AFNetworking不再是其中的一部分了.

1 个回答
  • 您可以告诉AFHTTPRequestOperationManagerAFHTTPSessionManager如何处理响应,例如在呼叫之前POST,您可以执行以下操作:

    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    

    然后在您的success块中,您可以将其转换NSData为字符串:

    NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
    

    话虽如此,您可能需要考虑转换Web服务以返回JSON响应,因为它更容易解析这种方式(并区分有效响应和某些服务器错误).

    2023-02-04 19:29 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有