zoukankan      html  css  js  c++  java
  • 较老版本的AFNetworking使用心得

    较老版本的 AFNetworking 下载链接 ( http://pan.baidu.com/s/14Cxga )

    将压缩包中的文件夹拖入xcode工程项目中并引入如下的框架

    简单的 JOSN 解析例子
        static NSString *serverAddress = @"http://m.weather.com.cn/data/101110101.html";

      // 1.创建JSON操作对象
        AFJSONRequestOperation *operation =
        [AFJSONRequestOperation
         JSONRequestOperationWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:serverAddress]]
         success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
             NSLog(@"success -- %@", JSON);
         } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
             NSLog(@"failure -- %@", JSON);
         }];

        // 2.执行对象的操作异步加载
        [operation start];

    简单的 XML 解析例子

        static NSString *serverAddress = @"http://flash.weather.com.cn/wmaps/xml/beijing.xml";
        
        // 1.创建XML操作对象
        AFXMLRequestOperation *operation =
        [AFXMLRequestOperation
         XMLParserRequestOperationWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:serverAddress]]
         success:^(NSURLRequest *request, NSHTTPURLResponse *response, NSXMLParser *XMLParser) {
             NSLog(@"success -- %@", XMLParser);
         }
         failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, NSXMLParser *XMLParser) {
             NSLog(@"failure -- %@", XMLParser);
         }];


        // 2.执行对象的操作异步加载
        [operation start];

    HTTP POST请求例子

    -----------------------------------------------------------------------------------------------------

    //内联函数

    NS_INLINE AFHTTPClient * createAFHTTPClient(NSString *baseURLString)
    {
        //创建一个AFHTTPClient的链接,仅需传入服务器URL的String即可
        return [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:baseURLString]];
    }

    NS_INLINE NSData * createJSONDataFromDict(NSDictionary *params)
    {
        //根据字典创建出JSON专用格式的NSData
        return [NSJSONSerialization dataWithJSONObject:params
                                               options:NSJSONWritingPrettyPrinted
                                                 error:nil];
    }

    -----------------------------------------------------------------------------------------------------

    //服务器地址
        static NSString *serverAddress = @"http://art.wooboo.com.cn/support/service.shtml";
        
        //初始化一个本地的httpClient
        AFHTTPClient *httpClient = createAFHTTPClient(serverAddress);
        
        //完善httpClient并形成一个POST请求报文
        NSURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST"
                                                                      path:serverAddress
                                                                parameters:nil
        constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
            
            
            NSArray *paramsType = @[@{@"action": @"loadImg", @"artId": @"0"}];
            
            
            //转换字典数据为JSON专用格式并再次转换为字符串
            NSString *params = [[NSString alloc] initWithData:
                                createJSONDataFromDict(paramsType[0])
                                                     encoding:NSUTF8StringEncoding];
            
            
            //进一步完善请求的内容 (Content-Disposition: form-data; name=#{name}")
            [formData appendPartWithFormData:[params dataUsingEncoding:NSUTF8StringEncoding]
                                        name:@"p"];
        }];
        
        
        //将请求报文发送到服务器进行链接
        AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
        [operation
         setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
             
             
             NSLog(@"%@", jsonObjectFromData(responseObject));
             
             
         } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
             
             NSLog(@"error.");
             
         }];
        [operation start];

  • 相关阅读:
    chrome安装插件
    如何在JIRA中有效使用关注和@提及 我正在关注的问题 提及我的问题 在仪表板上显示
    SQL Server中查找包含某个文本的存储过程 SQL 查找存储过程中出现过的文字怎么查询 查询整个数据库中出现的文本 sql 全局搜索
    Postman中添加真实请求(Chrome Networks中的全部请求,含https)copy as har
    SCOPE_IDENTITY 和 @@IDENTITY
    The underlying connection was closed: An unexpected error occurred on a rece
    mybatis中参数为list集合时使用 mybatis in查询
    如何在Mybatis的xml文件调用java类的方法
    Java中List, Integer[], int[]的相互转换
    ASP .NET Core HTTP Error 502.5 – Process Failure
  • 原文地址:https://www.cnblogs.com/mfl1990/p/3569889.html
Copyright © 2011-2022 走看看