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 ...
随机推荐
- python url解析
>>> url="http://localhost/test.py?a=hello&b=world " >>> result=urlpa ...
- python中的单下划线和双下划线意义和作用
Python中并没有真正意义上的“私有”,类的属性的的可见性取决于属性的名字(这里的属性包括了函数).例如,以单下划线开头的属性(例如_spam),应被当成API中非公有的部分(但是注意,它们仍然可以 ...
- 【2011 Greater New York Regional 】Problem B The Rascal Triangle
一个简单的规律题,每一列都是一个等差数列: 代码: #include<cstdio> #define ll long long using namespace std; int main( ...
- VS2010 C# 调用Web Service .
转自:http://blog.csdn.net/fenglailea/article/details/7262566 打开VS2010,打开"文件-新建-网站",选择"A ...
- ANDROID_MARS学习笔记_S03_007_GoogleMap1
一.简介 二.代码1.xml(1)main.xml <?xml version="1.0" encoding="utf-8"?> <Linea ...
- Android用户界面 UI组件--自动提示输入框 AutoCompleteTextView和MultiAutoCompleteTextView
AutoCompleteTextView: 就是一个带自动提示的EditText,当输入字符时,会出现提示. android:completionThreshold 输入几个字符时提示 androi ...
- [LeetCode] 306. Additive Number [Medium]
306. Additive Number class Solution { private: string stringAddition(string &a, string &b) { ...
- JBPM4.4部署到tomcat6异常解决办法
java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.ser ...
- android webview js交互 第一节 (java和js交互)
转载请注明出处 挺帅的移动开发专栏 http://blog.csdn.net/wangtingshuai/article/details/8631835 在androi ...
- Web---图片验证码生成教程详解-从简单到复杂-从本地到前后台
首先,我们先来看本地如何生成图片验证码的,再来写输出到网页的验证码如何实现. 先来看最简单的-实现的功能是,将一个字符串变成图片写入到文件中 实现代码: package cn.hncu.img; im ...