较老版本 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(@"[$10000000$] 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];
加载网络图片
-----------------------------------------------------------------------------------------------------
//内联函数
NS_INLINE NSURL * netURL(NSString *netPath)
{
//网络文件的URL
return [NSURL URLWithString:netPath];
}
NS_INLINE UIImage * imageFromBuddleByName(NSString *imageName)
{
//通过名字获取buddle中图片资源
return [UIImage imageNamed:imageName];
}
-----------------------------------------------------------------------------------------------------
- (void)setImageWithURL:(NSURL *)url
placeholderImage:(UIImage *)placeholderImage;
Creates and enqueues an image request operation, which asynchronously downloads the image from the specified URL. Any previous image request for the receiver will be cancelled. If the image is cached locally, the image is set immediately, otherwise the specified placeholder image will be set immediately, and then the remote image will be set once the request is finished.
-----------------------------------------------------------------------------------------------------
static NSString *picServerAddress =
@"http://wallpapers.wallbase.cc/high-resolution/wallpaper-2677423.jpg";
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 100.0f, 100.0f)];
[imageView setImageWithURL:netURL(picServerAddress)
placeholderImage:imageFromBuddleByName(@"1.png")];
-----------------------------------------------------------------------------------------------------
较老版本 AFNetworking 使用心得的更多相关文章
- 较老版本的AFNetworking使用心得
较老版本的 AFNetworking 下载链接 ( http://pan.baidu.com/s/14Cxga ) 将压缩包中的文件夹拖入xcode工程项目中并引入如下的框架 简单的 JOSN 解析例 ...
- 如何给不支持新特性的浏览器打补丁(让老版本IE兼容新特性)
一个非常棒的 JavaScript 框架叫做 Modernizr(http://www.modernizr. com),用于向缺少 HTML5/CSS3特性支持的浏览器打补丁.由 Alexander ...
- 快速入门系列--WebAPI--04在老版本MVC4下的调整
WebAPI是建立在MVC和WCF的基础上的,原来微软老是喜欢封装的很多,这次终于愿意将http编程模型的相关细节暴露给我们了.在之前的介绍中,基本上都基于.NET 4.5之后版本,其System.N ...
- 微软Hololens学院教程-Hologram 220-空间声音(Spatial sound )【本文是老版本,与最新的微软教程有出入】
这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦! 原文链接https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...
- 微软Hololens学院教程-Hologram 230-空间场景建模(Spatial mapping )【微软教程已经更新,本文是老版本】
这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦!原文链接:https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...
- 微软Hololens学院教程- Holograms 100: Getting Started with Unity【微软教程已经更新,本文是老版本】
这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦!原文链接:https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...
- 微软Hololens学院教程-Hologram 212-Voice(语音)【微软教程已经更新,本文是老版本】
这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦!原文链接:https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...
- 微软Hololens学院教程-Hologram 211-Gestures(手势)【微软教程已经更新,本文是老版本】
这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦!原文链接:https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...
- 微软Hololens学院教程-Hologram 210 Gaze(凝视)【微软教程已经更新,本文是老版本】
这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦!原文链接:https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...
随机推荐
- 移动端经常出现的兼容问题,谈谈移动端应用或者wap站的一些优化技巧和心得
移动端经常出现的兼容问题,谈谈移动端应用或者wap站的一些优化技巧和心得 1. 安卓浏览器看背景图片,有些设备会模糊. 因为手机分辨率太小,如果按照分辨率来显示网页,字会非常小,安卓手机 ...
- k8s集群master节点上的flannel总是不定期重启的原因分析
这个问题,困绕了团队一段时间, 因为暂时没有用到master的外网网络, 没有引起重视,但总归要解决. 上周五,刚好有点小空,就深入调查了一下. 最后,定位到了问题点:k8s master节点的fla ...
- getImplementationVersion-获取版本号
在工作中会遇到这个方法的使用,就记录一下. 一:getImplementationVersion 1. 方法 java.lang.Package.getImplementationVersion() ...
- 将 Ubuntu 16.04 LTS 升级到 Ubuntu 18.04 LTS
将 Ubuntu 16.04 LTS 升级到 Ubuntu 18.04 LTS Ubuntu 18.04 LTS(Bionic Beaver)即将发布, 如果您正在使用Ubuntu 16.04LT ...
- 【Ray Tracing in One Weekend 超详解】 光线追踪1-10
<Ray Tracing in One Weekend>完结篇 最近课程上机实验,封面图渲染时间也超长,所以写东西就落下了,见谅 这篇之后,我会继续<Ray Tracing The ...
- linux Shell 脚本编写
1. http://www.jb51.net/article/28514.htm 2. http://www.runoob.com/linux/linux-shell.html
- 「PKUWC2018」猎人杀
「PKUWC2018」猎人杀 解题思路 首先有一个很妙的结论是问题可以转化为已经死掉的猎人继续算在概率里面,每一轮一直开枪直到射死一个之前没死的猎人为止. 证明,设所有猎人的概率之和为 \(W\) , ...
- Codeforces.1040E.Network Safety(思路 并查集)
题目链接 \(Description\) 有一张\(n\)个点\(m\)条边的无向图,每个点有点权.图是安全的当且仅当所有边的两个端点权值不同.保证初始时图是安全的. 现在有权值为\(x\)的病毒,若 ...
- hadoop 视频教程2
Hadoop大数据零基础实战培训教程 一,教程内容: 1,Hadoop2.0YARN深入浅出系列 2,Avro数据序列化系统 3,Chukwa集群监控系统 4,Flume日志收集系统 5,Greenp ...
- FireDAC 下的 Sqlite [8] - 自定义函数
Sqlite 本身没有这个功能, FireDAC 通过 TFDSQLiteFunction 增加了该功能; 尽管通过某些 SQL 语句或通过视图也可以达到类似效果, 但函数会更灵活些. 本例先建了一个 ...