IOS中强大的网络通信类库AFNetworking使用示例

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

AFNetworking提供了非常强大而实用的网络操作API,结合使用NSURL和NSRequest来实现具体的网络操作。

1,Objective-C版本:

以获取twitter的一个接口文件为例

#import <AFNetworking/AFNetworking.h>

NSURL *url = [NSURL URLWithString:@"http://api.twitter.com/1/statuses/public_timeline.json"];

NSURLRequest *request = [NSURLRequest requestWithURL: url];

// 使用AFJSONRequestOperation用于处理JSON格式的response数据。

// 同理还有AFXMLRequestOperation,AFPropertyListRequestOperation,

// AFImageRequestOperation等,都是AFHTTPRequestOperation的子类。

AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest: request

    success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {

        NSLog(@"Public Timeline: %@", JSON);

    } failure:nil];

[operation start];

说实话,IOS中的写法真是繁琐,不过字面意思确实表达足够精确。


2,Swift中

若要使用AFNetworking,可将AFNetworking的目录拖至项目中。在项目的工程中建立一个Bridging-Header.h头文件,其中#import “AFNetworking/AFNetworking.h”,

然后在工程的build settings里边寻找bridging,添加指定的bridge文件Bridging-Header.h,即在Swift工程中导入了OC的类库。

下边的例子,根据latitude和longitude来获取天气信息

fun updateWeatherInfo(latitude: CLLocationDegrees, longitude: CLLocationDegrees) {

    let manager = AFHTTPRequestOperationManager()

    let url = "http://api.openweathermap.org/data/2.5/weather"

    let params = ["lat": latitude, "lon": longitude, "cnt": 0]

    manager.GET(url,

            parameters: params,

            success: { (operation: AFHTTPRequestOperation!,

                          responseObject: AnyObject!) in

                          println("JSON: " + responseObject.description!)

                          self.updateUISuccess(responseObject as NSDictionary!)

            },

            failure: { (operation: AFHTTPRequestOperation!,

                          error: NSError!) in

                          println("Error: " + error.localizedDescription)

                          self.loading.text = "Internet appears down!"

            }

    )

}


标签: seo 网络

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:C#自定义的针对URL地址的处理类

下一篇:C#对asp.net的session进行简单的封装类