较老版本的AFNetworking使用心得
将压缩包中的文件夹拖入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];
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。