【问题标题】:JSON text did not start with array Error with AFNetworkingJSON 文本没有以数组开头 AFNetworking 错误
【发布时间】:2014-08-01 05:07:27
【问题描述】:

我正在使用下面的代码来执行 GET 请求。以相反的方式将参数发送到服务器并将数据存储在服务器中。但我得到了错误 * JSON 文本不是以数组开头 *

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
        NSDictionary *params = @{@"emails": emailid,
                                 @"password": paswrd,
                                 @"gender": gende,
                                 @"firstname":name1,
                                 @"lastname":firstname1,
                                 @"dateofBirth":dob1,
                                 @"Country":count
                                 };

        [manager GET:@"http://37.187.152.236:91/EmployeeSvc.svc/AddEmployee?"
          parameters:params
             success:^(AFHTTPRequestOperation *operation, id responseObject) {
                 NSLog(@"JSON: %@", responseObject);
             } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                 NSLog(@"Error: %@", error);
             }];

【问题讨论】:

  • 您确定发送带有此类参数的GET 请求吗?响应必须是有效的 JSON,在服务器端似乎有些麻烦。
  • 呃,你能发布 JSON 吗?谢谢。

标签: ios objective-c json afnetworking


【解决方案1】:
-(void) testHTTPS {
    AFSecurityPolicy *securityPolicy = [[AFSecurityPolicy alloc] init];
    [securityPolicy setAllowInvalidCertificates:YES];

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [manager setSecurityPolicy:securityPolicy];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];

    [manager GET:[NSString stringWithFormat:@"%@", HOST] parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
        NSLog(@"%@", string);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    }];
}

【讨论】:

    【解决方案2】:

    你可以检查你的服务内容类型,如果是文本/html,你需要这样的代码:

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

    【讨论】:

      【解决方案3】:

      这个问题可能是由于错误的 JSON 字符串造成的。错误的 JSON 字符串是指您的 JSON 响应可能不是以预期的字符开头,即 '[''{'。起始字符必须始终是上述两个字符中的任何一个。

      您的 JSON 响应也有可能嵌入到某种 XML 字符串中。这发生在我身上,对我来说,这只是我解释的糟糕的 JSON 响应,我通过正确的解析解决了它。

      检查此图像。这就是糟糕的 JSON 的样子。

      <?xml version="1.0" encoding="utf-8"?>
      <string xmlns="http://tempuri.org/">
      [{"Title":"DemoTitle","CreationDate":"06/06/2014","Description":"DemoDescription"}]
      </string>
      

      如您所见,JSON 嵌入在 XML 字符串中。**强文本**另外,请检查您在此站点上的 JSON 响应:http://jsonlint.com/

      这将显示您收到的 JSON 是否可用于解析。

      希望这会有所帮助。

      【讨论】:

        【解决方案4】:

        这是服务器端错误,当您的服务器未响应 JSON 响应或响应 不是有效的 JSON,因为当 AF 网络库无法解析 JSON 响应时会出现此错误。 请与您的服务器端检查响应

        【讨论】:

        • 数据在服务器中正确存储..但意味着同时出现此错误
        • 不是存储数据的问题。当他们在 API 响应中返回数据时会出现此问题。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-23
        • 2018-05-21
        • 2014-01-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多