IOS学习之路十八(通过 NSURLConnection 发送 HTTP 各种请求)
你想通过 Http 协议向服务器发送一个 Get 的包装请求,并在这个请求中添加了一些请
求参数.
向远程服务器发送一个 GET 请求,然后解析返回的数据。通常一个 GET 请求是添加了
一些参数的,这些参数一般是添加在 URL 请求中。
我准备了一个 GET 形式的 webservice 接口,你可以通过 http://pixolity.com/get.php 来进
行请求。
- /* URL = http://pixolity.com/get.php?param1=First¶m2=Second */ NSString *urlAsString = @"http://pixolity.com/get.php";
- urlAsString = [urlAsString stringByAppendingString:@"?param1=First"]; urlAsString = [urlAsString stringByAppendingString:@"¶m2=Second"];
- NSURL *url = [NSURL URLWithString:urlAsString];
- NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url]; [urlRequest setTimeoutInterval:30.0f];
- [urlRequest setHTTPMethod:@"GET"];
- NSOperationQueue *queue = [[NSOperationQueue alloc] init];
- [NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response,
- 
- NSData *data, NSError *error) {
- if ([data length] >0 && error == nil){
- NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
- NSLog(@"HTML = %@", html); }
- else if ([data length] == 0 && error == nil){
- NSLog(@"Nothing was downloaded."); }
- else if (error != nil){
- NSLog(@"Error happened = %@", error);
- } }];
post请求:
- NSString *urlAsString = @"http://pixolity.com/post.php";
- urlAsString = [urlAsString stringByAppendingString:@"?param1=First"];
- urlAsString = [urlAsString stringByAppendingString:@"¶m2=Second"];
- NSURL *url = [NSURL URLWithString:urlAsString];
- NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url]; [urlRequest setTimeoutInterval:30.0f];
- [urlRequest setHTTPMethod:@"POST"];
- NSString *body = @"bodyParam1=BodyValue1&bodyParam2=BodyValue2"; [urlRequest setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]]; NSOperationQueue *queue = [[NSOperationQueue alloc] init];
- [NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response,
- NSData *data, NSError *error) {
- if ([data length] >0 && error == nil){
- NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
- NSLog(@"HTML = %@", html); }
- else if ([data length] == 0 && error == nil){
- NSLog(@"Nothing was downloaded."); }
- else if (error != nil){
- NSLog(@"Error happened = %@", error);
- } }];
delete请求:
- NSString *urlAsString = @"http://pixolity.com/delete.php";
- urlAsString = [urlAsString stringByAppendingString:@"?param1=First"];
- urlAsString = [urlAsString stringByAppendingString:@"¶m2=Second"];
- NSURL *url = [NSURL URLWithString:urlAsString];
- NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
- [urlRequest setTimeoutInterval:30.0f];
- [urlRequest setHTTPMethod:@"DELETE"];
- NSString *body = @"bodyParam1=BodyValue1&bodyParam2=BodyValue2";
- [urlRequest setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];
- NSOperationQueue *queue = [[NSOperationQueue alloc] init];
- [NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:
- ^(NSURLResponse *response, NSData *data, NSError *error) {
- if ([data length] >0 && error == nil){
- NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
- NSLog(@"HTML = %@", html); }
- else if ([data length] == 0 && error == nil){
- NSLog(@"Nothing was downloaded."); }
- else if (error != nil){
- NSLog(@"Error happened = %@", error);
- } }];
put请求:
- NSString *urlAsString=@"http://pixolity.com/put.php";
- urlAsString=[urlAsString stringByAppendingString:@"?param1=First"];
- urlAsString=[urlAsString stringByAppendingString:@"¶m2=Second"];
- NSURL *url=[NSURL URLWithString:urlAsString];
- NSMutableURLRequest *urlRequest=[NSMutableURLRequest requestWithURL:url];
- [urlRequest setTimeoutInterval:30.0f];
- [urlRequest setHTTPMethod:@"PUT"];
- NSString *body=@"bodyParaml=BodyValuel&bodyParam2=BodyValue2";
- [urlRequest setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];
- NSOperationQueue *queue=[[NSOperationQueue alloc] init];
- [NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
- if ([data length]>0&&error==nil) {
- NSString *html=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
- NSLog(@"HTML=%@",html);
- }else if([data length]==0&&error==nil){
- NSLog(@"Nothing was downLoaded.");
- }else if(error!=nil){
- NSLog(@"Error Happened=%@",error);
- }
- }];
转载请注明:
本文转自:点击打开链接http://blog.csdn.net/wildcatlele
新浪微博:http://weibo.com/u/3202802157
IOS学习之路十八(通过 NSURLConnection 发送 HTTP 各种请求)的更多相关文章
- IOS学习之路十四(用TableView做的新闻客户端展示页面)
最近做的也个项目,要做一个IOS的新闻展示view(有图有文字,不用UIwebview,因为数据是用webservice解析的到的json数据),自己一直没有头绪,可后来听一个学长说可以用listvi ...
- 嵌入式Linux驱动学习之路(十八)LCD驱动
驱动代码: /************************************************************************* > File Name: lcd ...
- IOS学习之路十二(UITableView下拉刷新页面)
今天做了一个下拉刷新的demo,主要用到了实现的开源框架是:https://github.com/enormego/EGOTableViewPullRefresh 运行结果如下: 实现很简单下载源代码 ...
- IOS学习之路十五(UIView 添加背景图片以及加边框)
怎样给UIview添加背景图片呢很简单,就是先给view添加一个subview,然后设为背景图片: 效果图如下: 很简单直接上代码: //设置内容 self.myTopView.backgroundC ...
- IOS学习之路十(仿人人滑动菜单Slide-out Sidebar Menu)
最近滑动菜单比较流行,像facebook和人人等都在使用滑动菜单,今天做了一个小demo大体效果如下: 这次用了一个开源的项目ECSlidingViewController这个也是一个挺著名的托管在G ...
- IOS学习之路十九(JSON与Arrays 或者 Dictionaries相互转换)
今天写了个json与Arrays 或者 Dictionaries相互转换的例子很简单: 通过 NSJSONSerialization 这个类的 dataWithJSONObject: options: ...
- IOS学习之路十六(UItableView 通过Prepare for segue 页面传值)
当你点击一个UITableView 的section 或者cell的时候希望把值传到另一个页面(页面是通过segue跳转的),可以通过prepareforsegure 方法传值 (我的UITableV ...
- IOS开发---菜鸟学习之路--(二十二)-近期感想以及我的IOS学习之路
在不知不觉当中已经写了21篇内容 其实一开始是没有想些什么东西的 只是买了Air后 感觉用着挺舒服的,每天可以躺在床上,就一台笔记本,不用网线,不用电源,不用鼠标,不用键盘,干干脆脆的就一台笔记本. ...
- Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)
在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...
随机推荐
- MVC中,视图的Layout使用
本文目标 1.能够重用Razor模板进行页面的组件化搭建 本文目录 1.母板页_Layout.cshtml 2.用户自定义控件 3.默认Layout引用的使用(_ViewStart.cshtml) 1 ...
- Android_显示器本身被卸载应用程序
1.经jni实现功能 //LOG宏定义 #define LOG_INFO(tag, msg) __android_log_write(ANDROID_LOG_INFO, tag, msg) #defi ...
- CSharp设计模式读书笔记(23):模板方法模式(学习难度:★★☆☆☆,使用频率:★★★☆☆)
模板方法模式:定义一个操作中算法的框架,而将一些步骤延迟到子类中.模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 模式角色与结构: 实现代码: using System; ...
- STL 源代码分析 算法 stl_algo.h -- binary_search
本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie binary_search -------------------------------- ...
- Mediator - 中介者模式
定义 用一个中介对象来封装一系列的对象的交互.中介者使各对象不须要显示地相互使用,从而使其耦合松散,并且能够独立的改变他们之间的交互. 案例 比方有一个图像界面,在界面上有一个输入框LineEdit, ...
- BS导出csv文件的通用方法(.net)
最近把以前项目里用的导出文件的功能提取成了dll,通过读取Attribute来得到要导出的表头(没有支持多语言),使用时只要组织好要导出的数据,调用方法就好了,希望对大家有用. 使用时只需引用下载包里 ...
- UITableView刷新局部
//局部section刷新 NSIndexSet *nd = [[NSIndexSet alloc] initWithIndex:1]; //刷新第二个section [self.tableView ...
- dozer-初识
1.简介 dozer是一种JavaBean的映射工具,类似于apache的BeanUtils.但是dozer更强大,它可以灵活的处理复杂类型之间的映射.不 但可以进行简单的属性映射.复杂的类型 ...
- [DevEpxress]GridControl 显示Gif动画
原文:[DevEpxress]GridControl 显示Gif动画 如果没有对进行设置,那么GridControl列中gif在编辑状态下,才能显示动画效果,如果要设置列自动显示动画效果,可以进行如下 ...
- Java之多线程
一.简述进程与线程的关系 说到多线程就不得不说进程,那么什么是进程:简单的来说就是正在进行中的程序. 在windows中,我们可以直观的看到的正在运行中的程序,即进程,如图: