iOS之ASIHttp简单的网络请求实现
描述:
ASIHttpRequest是应用第三方库的方法,利用代码快,减少代码量,提高效率 准备工作:
一、导入第三方库ASIHttpRequest
二、会报很多的错,原因有两个,一个是要导入Xcode中自带的四个文件,一个是他没有使用自动引用计数
三、解决方案 1.导入四个系统文件,分别是 MobileCoreServices.framework SystemConfiguration.framework
CFNetwork.framework libz.1.2.5.dylib 2.手动关掉自动引用计数 在工程的buide phase 中的 compile sources
中,将ASIHhttp类型的,点击后面,添加上-fno-objc-arc 3.运行一遍,就不会报错了 实现异步post请求
#import "ASIHTTPRequest.h"
- (void)viewDidLoad
{
[self requestHttp];
}
-(void)requestHttp
{
//1200792098331
//首先创建一个URL的对象
NSURL * url = [NSURL urlWithString:[NSString stringWithFormat:@"http://api.kuaidi100.com/api?id=d6b9888b0da96f6b&com=%@&nu=%@&show=0&muti=1&order=desc&display=mobile",name]];
NSURL * url =[NSURL URLWithString:[NSString stringWithFormat:@"http://api.kuaidi100.com/api?id=d6b9888b0da96f6b&com=%@&nu=%@&show=0&muti=1&order=desc&display=mobile"]];
NSLog(@"url======%@",url);
再创建一个请求对象
ASIHTTPRequest * request = [ASIHTTPRequest requestWithURL:url];
发送请求,并返回相应的JSon数据
[request setCompletionBlock:
^{
NSError * error = nil;
//创建一个字典,接收返回的JSON数据
NSDictionary * dictionary = [NSJSONSerialization JSONObjectWithData:request.responseData options:kNilOptions error:&error];
NSLog(@"%@",dictionary);
//创建一个数组,并将字典中的数据存放再数组中
NSArray * arr = [dictionary objectForKey:@"data"];
//将数组中的数据变例一下,并将变例后的数据存放在一个可变的数组中
for (NSDictionary * temp in arr)
{
[self.array addObject:[NSString stringWithFormat:@"%@ \n%@",[temp objectForKey:@"time"],[temp objectForKey:@"context"]]];
}
// 将变例后的可变数组中的数据以字符串的形势赋给一个可变字符串对象,同时变例字符串
for(NSString* temp in self.array)
{
[self.mutableString appendString:[NSString stringWithFormat:@"%@\n",temp]];
NSLog(@" temp==== %@",temp);
}
//我这里是将变例后的可变字符串赋给了一个lable
self.jieGuoLale.text = self.mutableString;
NSLog(@"self.jieGuoLale.text======%@",self.jieGuoLale.text);
}];
//如果请求发送失败,则调出警告框
[request setFailedBlock:
^{
UIAlertView * alerteView = [[UIAlertView alloc]initWithTitle:@"提示" message:@"问题警告:网络链接异常,请稍后再试" delegate:nil cancelButtonTitle:@"退出" otherButtonTitles: nil];
[alerteView show];
}];
//发送一个异步请求
[request startAsynchronous];
}
iOS之ASIHttp简单的网络请求实现的更多相关文章
- Xamarin.Android之封装个简单的网络请求类
一.前言 回忆到上篇 <Xamarin.Android再体验之简单的登录Demo> 做登录时,用的是GET的请求,还用的是同步, 于是现在将其简单的改写,做了个简单的封装,包含基于Http ...
- iOS中使用block进行网络请求回调
iOS中使用block进行网络请求回调 HttpRequest.h // // HttpRequest.h // UseBlockCallBack // // Created by Michael o ...
- IOS开发之自动布局显示网络请求内容
在上一篇博客中详细的介绍了IOS开发中的相对布局和绝对布局,随着手机屏幕尺寸的改变,在App开发中为了适应不同尺寸的手机屏幕,用自动布局来完成我们想要实现的功能和效果显得尤为重要.本人更喜欢使用相对布 ...
- Android 最早使用的简单的网络请求
下面是最早从事android开发的时候写的网络请求的代码,简单高效,对于理解http请求有帮助.直接上代码,不用解释,因为非常简单. import java.io.BufferedReader; im ...
- IOS 京东相关app 出现“网络请求失败,请检查您的网络设置”的解决办法
问题情况 在IOS系统下,下载安装或者更新新版的京东相关app之后,打开app直接就是“网络请求失败,请检查网络设置”,无论是数据连接还是wifi都试了,都是网络请求失败. 然而打开无线局域网-使用无 ...
- iOS 技术篇:如何处理多个网络请求的先后(依赖)关系
在开发过程中,不知你有没有碰到过在一个页面 用到了多个网络请求,而且根据业务需求,需要有次序的执行A B C 网络请求? 你可能会想到,我在A的请求成功回调里去处理B,在B的回调里去请求C,但你后来会 ...
- iOS中4种判断网络请求的方式(系统状态栏、AFNetworking、Reachability、自定义)
iOS 实时判断网络状态 方法一:利用系统状态栏判断网络状态 // 状态栏是由当前app控制的,首先获取当前app UIApplication *app = [UIApplication shared ...
- 解决ios开发中不合法的网络请求地址
NSString *const kWebsite = @"http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct ...
- Java笔记7:最简单的网络请求Demo
一.服务器端 1 新建一个工程,建立一个名为MyRequest的工程. 2 FileàProject StructureàModulesà点击最右侧的“+”àLibraryàJava 找到Tomcat ...
随机推荐
- 关于MATLAB中的tic toc的问题
关于MATLAB中的tic toc的问题 其一) MATLAB实际单位时间计时函数的具体应用,在编写程序时,经常需要获知代码的执行实际时间,这就需要在程序中用到计时函数,matlab中提供了以下三种方 ...
- Li Fei-fei写给她学生的一封信,如何做好研究以及写好PAPER
Li Fei-fei写给她学生的一封信,如何做好研究以及写好PAPER 在微博上看到的,读完还是有些收获的,首先是端正做research的态度. 我是从这里看到的:http://www.vjianke ...
- [wikioi]石子归并
http://wikioi.com/problem/1048/ 区间型动态规划.参考PPT:http://wenku.baidu.com/view/73c1ded5b9f3f90f76c61bc4.h ...
- Android ContentProvider和getContentResolver
安卓系统中的数据库SqlLite操作和java中mysql的数据库操作很不一样,造成这样的原因是因为在安卓中数据库是属于进程的不存在数据库客户端,也不存在数据库服务器. 关于SqlLite数据库的文章 ...
- Android Animation
Android中常用两种动画模式,tween animation和frame animation,即补间动画和帧动画,但在android3.0中又引入了一个新的动画系统:property animat ...
- 远程仓库版本回退方法 good
1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客. 2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的版本到远程分支,怎么回退远程分支 ...
- Linux的线程同步对象:互斥量Mutex,读写锁,条件变量
进程是Linux资源分配的对象,Linux会为进程分配虚拟内存(4G)和文件句柄等 资源,是一个静态的概念.线程是CPU调度的对象,是一个动态的概念.一个进程之中至少包含有一个或者多个线程.这 ...
- vi的撤销命令
'u' : 撤销上一个编辑操作 'ctrl + r' : 恢复,即回退前一个命令 'U' : 行撤销,撤销所有在前一个编辑行上的操作 使用u 和 CTRL+R 命令可以恢复到任何编辑过的状态
- jQuery对象和DOM对象原来不一样啊
jQuery对象和DOM对象使用说明,需要的朋友可以参考下.1.jQuery对象和DOM对象第一次学习jQuery,经常分辨不清哪些是jQuery对象,哪些是 DOM对象,因此需要重点了解jQuery ...
- BZOJP1003 [ZJOI2006]物流运输trans
BZOJP1003 [ZJOI2006]物流运输trans 1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec Memory Limit: 162 MB Sub ...