较老版本 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 ...
随机推荐
- .NetCore中使用ExceptionLess记录Polly中的操作异常日志
结合上一篇文章我写了一个demo测试下 重试2次 _polly.PollyRetry<Exception>(()=>_demoQuery.GetTestAOPAsync(), ); ...
- 000 SpringMVC介绍
1.介绍 2.MVC 模型(Model)封装了应用程序数据,通常它们将由POJO类组成. 视图(View)负责渲染模型数据,一般来说它生成客户端浏览器可以解释HTML输出. 控制器(Controlle ...
- mysql排序数据
一:order by的普通使用 1.介绍 当使用SELECT语句查询表中的数据时,结果集不按任何顺序进行排序.要对结果集进行排序,请使用ORDER BY子句. ORDER BY子句允许: 对单个列或多 ...
- 040 DataFrame中的write与read编程
一:SparkSQL支持的外部数据源 1.支持情况 2.External LIbraries 不是内嵌的,看起来不支持. 但是现在已经有很多开源插件,可以进行支持. 3.参考材料 · 支持的格式:ht ...
- ref:Spring JdbcTemplate+JdbcDaoSupport实例
ref:https://www.yiibai.com/spring/spring-jdbctemplate-jdbcdaosupport-examples.html 在Spring JDBC开发中,可 ...
- windows下解决PyCharm控制台中文输出乱码
我用的PyCharm是2018.2版本 在调用os.system()的过程中遇到了控制台中文乱码的问题,具体如下 网上说的将两个Encoding格式都设置为UTF-8并没有解决问题,后来我将Proje ...
- Java动态性之反射机制(reflection)
说到反射机制,第一次接触的人可能会比较懵,反射?什么反射?怎么反射?反射是干嘛的?下面我将在这篇文章中讲讲Java的反射机制 不过在这之前,还有一个问题需要解决,标题名中的动态性,说起动态性,我先介绍 ...
- 【Ray Tracing in One Weekend 超详解】 光线追踪1-2
今天我们开始进入正篇 Chapter 3: Rays, a simple camera, and background 对于所有的光线追踪器,基本都有一个光线类,计算沿光线看到的颜色. 我们的光线是一 ...
- BZOJ.4180.字符串计数(后缀自动机 二分 矩阵快速幂/倍增Floyd)
题目链接 先考虑 假设S确定,使构造S操作次数最小的方案应是:对T建SAM,S在SAM上匹配,如果有S的转移就转移,否则操作数++,回到根节点继续匹配S.即每次操作一定是一次极大匹配. 简单证明:假设 ...
- Linux 系统及编程相关知识总汇
Linux C function() 参考手册 STL 学习文档 Linux内核