ASIHttpRequest的get和post应用
2015-10-24 00:42
453 查看
//http.h全文 #import <Foundation/Foundation.h> @interface http : NSObject // 发送带参数webService请求,参数: webServiceURL,参数名,参数值 - (NSString*) synchronousRequest:(NSString*) webServiceURL paramName:(NSString *) cityName paramValue:(NSString *) cityValue; // 发送webService请求,无参数 - (NSString*) synchronousRequest:(NSString*) webServiceURL; @end
//http.m全文 #import "http.h" #import "ASIHTTPRequest/ASIHTTPRequest.h" #import "ASIHTTPRequest/ASIFormDataRequest.h" @implementation http - (NSString*) synchronousRequest:(NSString*) webServiceURL { // 创建NSURL对象 NSURL *url = [NSURL URLWithString:webServiceURL]; // ASIHTTPRequest对象用来发送简单的Get请求 ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; // 发送同步请求 [request startSynchronous]; // 通过检查error属性可以判断请求是否成功或发生错误。 NSError *error = [request error]; if (!error) { return [request responseString]; } NSLog(@"发送无参数的GET请求时发生错误:%@", error); return nil; } - (NSString*) synchronousRequest:(NSString*) webServiceURL paramName:(NSString *) cityName paramValue:(NSString *) cityValue { NSURL *url = [NSURL URLWithString:webServiceURL]; // 使用ASIFormDataRequest发送带参数的POST请求 ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; // 添加请求参数 [request setPostValue:cityValue forKey:cityName]; // 发送同步请求 [request startSynchronous]; // 通过检查error属性可以判断请求是否成功或发生错误。 NSError *error = [request error]; if (!error) { return [request responseString]; } NSLog(@"发送带参数的POST请求时发生错误:%@", error); return nil; } @end
//viewController中的三个按钮的响应函数 //获取市的天气预报 - (IBAction)getCityWeather:(id)sender { // 创建FKASIHTTPRequestUtil的对象 http *asi = [[http alloc] init]; NSString *city = @"深圳"; // 调用 synchronousRequest方法根据城市名称获取城市的天气信息,返回的是一个xml格式的字符串 NSString *responseString = [asi synchronousRequest:getWeatherbyCityName paramName:theCityName paramValue:city]; [textview setText:responseString]; // 从远程服务器获取数据 ,免费用户二次获取数据时间要超过600ms,所以此处暂停0.7秒 //[NSThread sleepForTimeInterval:0.7]; return; } //获取市列表 - (IBAction)getCityName:(id)sender { http* asi = [[http alloc] init]; NSString* prov = @"广东"; NSString* responseString = [asi synchronousRequest:getSupportCity paramName:byProvinceName paramValue:prov]; [textview setText:responseString]; return; } //获取省列表 - (IBAction)getProvinces:(id)sender { http* asi = [[http alloc]init]; NSString* responseString = [asi synchronousRequest:getSupportProvince]; //[NSThread sleepForTimeInterval:0.7]; [textview setText:responseString]; return; }
点击按钮后可以显示接收到的xml字符串,图片使用模拟器截的
相关文章推荐
- Transport Security has blocked a cleartext HTTP
- Android网络通信框架LiteHttp:开篇简介和教程大纲
- IOS 开发网络版图片浏览器
- 支持Cookie并开放了一些特殊设置项的HttpWebClient
- java基础-Java网络编程和反射
- LiteHttp 第十五节:并发调度控制器详解
- HttpClient在java中的使用
- LiteHttp 第十四节:回调监听器详解
- LiteHttp 第十三节:多层缓存机制及用法
- LiteHttp 第十二节:通过注解完成API请求
- LiteHttp 第十一节:全局配置与参数设置详解
- ASIHTTPRequest安装配置,实测
- LiteHttp 第十节:异步并发与调度策略
- LiteHttp 第九节:POST方式的多种类型数据传输
- LiteHttp 第八节:处理异常和取消请求
- LiteHttp 第七节:重试和重定向
- LiteHttp 第六节:禁用网络和流量&耗时统计
- LiteHttp 第五节:文件、位图的上传和下载
- LiteHttp 第四节:自定义DataParser和Json序列化库的替换
- LiteHttp 第三节:自动对象转化