3840 http ios_ios 3840 - CSDN
精华内容
参与话题
  • 因为后台原因,如果请求失败,返回的error错误信息是AFN中默认json解析数据,这时会返回解析失败的3840信息,如果这时想获取自己去解析不需要返回json数据,那么就需要改变默认的解析方式,这时关键问题如下: ...

    因为后台原因,如果请求失败,返回的error错误信息是AFN中默认json解析数据,这时会返回解析失败的3840信息,如果这时想获取自己去解析不需要返回json数据,那么就需要改变默认的解析方式,这时关键问题如下:

    原来响应序列器设置为

    AFHTTPResponseSerializer *responseSerializer = [AFJSONResponseSerializer serializer];//此处返回的结果是不可改的;

    需要设置为如下才可以:

    AFHTTPResponseSerializer *responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions: NSJSONReadingMutableContainers];//允许返回的结果可改。

    + (void)initialize{
        
        manager=[AFHTTPSessionManager manager];
        
        manager.responseSerializer.acceptableContentTypes=[manager.responseSerializer.acceptableContentTypes setByAddingObjectsFromArray:@[@"text/plain",@"text/html",@"application/json",@"multipart/form-data"]];
        
        manager.requestSerializer = [AFJSONRequestSerializer serializer];
        manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingMutableContainers];//允许返回的结果可改
    }
    
    + (void)GET:(NSString *)urlStr parameters:(id)parameters
        success:(void (^)(id responseObject))success
        failure:(void (^)(NSError *error))failure {
    
        [manager GET:urlStr parameters:parameters progress:^(NSProgress * _Nonnull downloadProgress) {
            
        } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            
            success(responseObject);
            
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    //        NSError *underError = error.userInfo[@"NSUnderlyingError"];
    //        
    //        NSData *data=underError.userInfo[AFNetworkingOperationFailingURLResponseDataErrorKey];
    //        
    //        NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    //        NSLog(@"%@",str);
            
            NSData *data = error.userInfo[AFNetworkingOperationFailingURLResponseDataErrorKey];
            if (data != nil) {
    //            id body = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
                NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
                NSLog(@"error--%@", str); //就可以获取到错误时返回的body信息。
            }
            
            failure(error);
            
        }];
    }
    
    如下图所示:


    http://www.oschina.net/question/2296401_225963

    http://www.fx114.net/qa-227-152024.aspx

    http://www.jianshu.com/p/03bf22adaf11



    展开全文
  •  最近iOS开发中,客户端需要使用http POST去进行请求服务器。需要发送的是XML格式的,当然接收的也是XML。我们准备使用的是AFNetworking来实现。关于AFnetworking的使用以及Cocoapods包管理,请参考我的其他几篇...

         由于最近忙着开发项目,好几天没来写博客了。我把最近遇到的一个小bug来和大家分享一下。

         最近iOS开发中,客户端需要使用http POST去进行请求服务器。需要发送的是XML格式的,当然接收的也是XML。我们准备使用的是AFNetworking来实现。关于AFnetworking的使用以及Cocoapods包管理,请参考我的其他几篇博客:《iOS项目开发实战——使用AFNetworking进行Http Get请求》,《查看进行AFNetworking请求时的头部信息》,《iOS包管理工具Cocoapods的安装与使用》。我进行请求的代码实现如下:

    -(void)query05{
    
      AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
      
      manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
      
      NSString *str = @"<?xml version=\"1.0\" encoding=\"utf-8\"?>"
      "<root>"
      "<command_type>****</command_type>"
      "<id>***</id>"
      "<action>***</action>"
      "<value>***</value>"
      "</root>";
      
      NSDictionary *parameters = @{@"test":str};
      
      [manager POST:@"http://***.php"parameters:parameters
       
            success:^(AFHTTPRequestOperation *operation,id responseObject)
       {
         
         NSLog(@"Success: %@", responseObject);
         
       }failure:^(AFHTTPRequestOperation *operation,NSError *error)
       {
         
         NSLog(@"Error: %@", error);
         
       }];
    }

         但是当运行程序后,出现如何错误:

    Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

    如图:



         这个bug的确很诡异,我根本没有做任何关于JSON的操作,却给我报了一个JSON的错。最后查了很多资料,解决方案如下:主要是增加了几行代码:

    - (void)query05{
      
      //增加这几行代码;
      AFSecurityPolicy *securityPolicy = [[AFSecurityPolicy alloc] init];
      [securityPolicy setAllowInvalidCertificates:YES];
      
      AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    //这里进行设置;
      [manager setSecurityPolicy:securityPolicy];
      manager.responseSerializer = [AFHTTPResponseSerializer serializer];
      
      NSString *str = @"<?xml version=\"1.0\" encoding=\"utf-8\"?>"
      "<root>"
      "<command_type>***</command_type>"
      "<id>***</id>"
      "<action>***</action>"
      "<value>***</value>"
      "</root>";
      
      NSDictionary *parameters = @{@"test" : str};
      
      [manager POST:@"http://***.php"
         parameters:parameters
            success:^(AFHTTPRequestOperation *operation,id responseObject){
              NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
              NSLog(@"成功: %@", string);
            }
            failure:^(AFHTTPRequestOperation *operation,NSError *error){
              NSLog(@"失败: %@", error);
            }];
    }


        通过以上的修改,就能成功的获得服务器的数据了。



    github主页:https://github.com/chenyufeng1991  。欢迎大家访问!

    展开全文
  • ios json解析3840错误

    千次阅读 2016-09-08 18:43:01
    日志如下:Error Domain=NSCocoaErrorDomain Code=3840 后台数据不标准,检查后台数据是否错误,不是前端的事完整代码如下: NSDictionary *parameters; AlamofireRequest *fireRequest = [[AlamofireRequest ...

    日志如下:

    Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x17066ad00 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

    后台数据不标准,检查后台数据是否错误,不是前端的事

    完整代码如下:

    
        NSDictionary *parameters;
        AlamofireRequest *fireRequest = [[AlamofireRequest alloc]init];
    
        NSString *str = [fireRequest creatToken];
    
        NSLog(@"%@",str);
                        parameters =@{@"paraToken":str};
    
    
        NSString *urlStr=[NSString stringWithFormat:@"http://130.55.225.204:81/smw/neeryProList"];
    
    
                        AFHTTPSessionManager *manager =[AFHTTPSessionManager manager];
    
                        manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    
                        [manager GET:urlStr parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject)
                         {
                             NSJSONSerialization *json = [NSJSONSerialization JSONObjectWithData:responseObject options:nil error:nil];
    
    
                             NSLog(@"!!!!!!!!!!!!!!!!!!!!!   %@",json);
                             NSDictionary *dic = json;
    
                             NSLog(@"%@",dic[@"productList"]);
                             for (NSDictionary *d in dic[@"productList"]) {
                                 ProdectModel *model= [[ProdectModel alloc]init];
                                 model.productId = d[@"id"];
                                 model.name = d[@"n"];
                                 model.desc = d[@"d"];
                                 model.price = d[@"p"];
                                 model.coins = d[@"co"];
                                 [self.productModelArray addObject:model];
                             }
                             [self creatTableView];
    
                         } failure:^(NSURLSessionDataTask *task, NSError *error)
                         {
                             NSLog(@"`````%@",error);
                         }];
    
    
    
    
    展开全文
  • AFNetworking数据请求错误 Code=3840

    千次阅读 2016-12-16 14:27:38
    欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 ...

    错误提示:
    Error Domain=NSCocoaErrorDomain Code=3840 “JSON text did not start with array or object and option to allow fragments not set.” UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

    添加代码:
    1、
    manager.requestSerializer = [AFHTTPRequestSerializer serializer];
    manager.responseSerializer = [AFJSONResponseSerializer serializer];// 请求返回的格式为json
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@”application/json”, @”text/json”, @”text/javascript”,@”text/html”, nil];
    添加上之后还是报错的话,那么这就是服务器端的问题 主要是服务器端返回的json格式不符合要求,让服务器解决
    2、
    在默认情况下,afnetworking网络请求都是以json的数据格式返回数据,因此,客户端也会以json为默认格式,如果返回的数据为非json标准格式,
    manager.responseSerializer = [AFHTTPResponseSerializer serializer]
    但是这样的话要自己转成UTF-8好像

    展开全文
  • 做了一个产品,需要人气支持一下,android和iphone上91市场搜索#super junior粉丝团#,或者直接到页面下载http://m.ixingji.com/m.html?p=X16,大家帮忙捧捧场 做视频capture的时候老是要用到这些参数,记录一下,...
  • Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo={NSDebugDescription=JSON text did not start with array or ...
  • iOS中的NSError code(错误码)

    千次阅读 2014-04-28 11:54:46
    URL Loading System Error Codes These values are returned as the error code property of an NSError object with the domain “NSURLErrorDomain”. typedef enum { NSURLErrorUnknown = -1, ...
  • iOS 基本编码格式转化

    万次阅读 热门讨论 2012-08-19 20:20:44
    iOS中编码转化 1.UTF-8转化  NSString *data = @"你好,北京!";  //转换成UTF-8  NSString *dataUTF8 = [data stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  NSLog(@"%@",...
  • iOS 使用AFNetworking遇到错误 Request failed: unacceptable content-type: text/html 错误日志: Error Domain=...
  • iOS 错误:Error Domain=NSCocoaErrorDomain Code=3840 "Garbage at end." UserInfo={NSDebugDescription=Garbage at end.} 今天突然发现有些窗口请求失败,赶紧排查修复, 一开始就想到是后台的问题,可是安卓说没...
  • 最近接手一个项目,因为之前的项目里面POST请求用的是ASI的,我就想着给替换成AFNetworking,但是...错误描述和发现过程Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and
  • AFNetworking 3.0 Code=-1016 错误解决方案

    千次阅读 2016-05-21 02:22:02
    AFNetworking Code=-1016 错误解决方案导入AFNetworking类库(请参考:iOS 9 导入类库全面详尽过程(Ruby安装->CocoaPods安装->导入类库))之后,然后小伙伴们就可以照着如下官方文档欢乐地写代码。...
  • iOS中获取NSError错误信息汇总

    千次阅读 2020-08-25 09:38:21
    iOS的NSError错误信息问题汇总 一. URL网络框架错误域问题 使用AFNetworking 走了fail方法,输出错误信息 1. 网络请求中, 错误值作为域 NSURLErrorDomain 的 NSError 对象的错误代码属性返回。 error -------&gt...
  • AFNetworking 关于JSON text did not start with array or object and option to allow fragments not set 错误
  • 错误提示:Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) ...
  • 由于iOS开发中常常涉及到网络数据交互的问题,同时因为iOS之前的自带框架略坑爹,同时有较好的第三方框架AFNetworking的存在,所以在这次项目的操作中使用AFNetworking进行网络层的数据交互。同时由于网络上大部分的...
  • AFNetworking3.0的简单使用及代码
  • iOS开发——网络请求案例汇总

    千次阅读 2015-11-29 14:20:15
    在这篇博客中,我将用苹果自带的网络请求方式(不使用第三方框架)下对iOS网络请求方法做一个汇总。我将在之后的博客中介绍使用AFNetworking框架进行请求的实现。代码已经上传至:...
  • 最近接手另一个项目组一个项目,之前...Error Domain=NSCocoaErrorDomain Code=3840 “JSON text did not start with array or object and option to allow fragments not set.” 看了错误描述后,根据它的描述是...
  • //404,406除了参数,路径错了,有可能都是需要使用multipart/form-data格式提交 { Status Code: 404, Headers {  "Content-Language" = (en); "Content-Length" = (1175); ...charset=utf-8
1 2 3 4 5 ... 11
收藏数 216
精华内容 86
关键字:

3840 http ios