你想通过 Http 协议向服务器发送一个 Get 的包装请求,并在这个请求中添加了一些请

求参数.

向远程服务器发送一个 GET 请求,然后解析返回的数据。通常一个 GET 请求是添加了

一些参数的,这些参数一般是添加在 URL 请求中。
我准备了一个 GET 形式的 webservice 接口,你可以通过 http://pixolity.com/get.php 来进

行请求。

  1. /* URL = http://pixolity.com/get.php?param1=First¶m2=Second */ NSString *urlAsString = @"http://pixolity.com/get.php";
  2. urlAsString = [urlAsString stringByAppendingString:@"?param1=First"]; urlAsString = [urlAsString stringByAppendingString:@"¶m2=Second"];
  3. NSURL *url = [NSURL URLWithString:urlAsString];
  4. NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url]; [urlRequest setTimeoutInterval:30.0f];
  5. [urlRequest setHTTPMethod:@"GET"];
  6. NSOperationQueue *queue = [[NSOperationQueue alloc] init];
  7. [NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response,
  8. NSData *data, NSError *error) {
  9. if ([data length] >0 && error == nil){
  10. NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  11. NSLog(@"HTML = %@", html); }
  12. else if ([data length] == 0 && error == nil){
  13. NSLog(@"Nothing was downloaded."); }
  14. else if (error != nil){
  15. NSLog(@"Error happened = %@", error);
  16. } }];

post请求:

  1. NSString *urlAsString = @"http://pixolity.com/post.php";
  2. urlAsString = [urlAsString stringByAppendingString:@"?param1=First"];
  3. urlAsString = [urlAsString stringByAppendingString:@"¶m2=Second"];
  4. NSURL *url = [NSURL URLWithString:urlAsString];
  5. NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url]; [urlRequest setTimeoutInterval:30.0f];
  6. [urlRequest setHTTPMethod:@"POST"];
  7. NSString *body = @"bodyParam1=BodyValue1&bodyParam2=BodyValue2"; [urlRequest setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]]; NSOperationQueue *queue = [[NSOperationQueue alloc] init];
  8. [NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response,
  9. NSData *data, NSError *error) {
  10. if ([data length] >0 && error == nil){
  11. NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  12. NSLog(@"HTML = %@", html); }
  13. else if ([data length] == 0 && error == nil){
  14. NSLog(@"Nothing was downloaded."); }
  15. else if (error != nil){
  16. NSLog(@"Error happened = %@", error);
  17. } }];

delete请求:

  1. NSString *urlAsString = @"http://pixolity.com/delete.php";
  2. urlAsString = [urlAsString stringByAppendingString:@"?param1=First"];
  3. urlAsString = [urlAsString stringByAppendingString:@"¶m2=Second"];
  4. NSURL *url = [NSURL URLWithString:urlAsString];
  5. NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
  6. [urlRequest setTimeoutInterval:30.0f];
  7. [urlRequest setHTTPMethod:@"DELETE"];
  8. NSString *body = @"bodyParam1=BodyValue1&bodyParam2=BodyValue2";
  9. [urlRequest setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];
  10. NSOperationQueue *queue = [[NSOperationQueue alloc] init];
  11. [NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:
  12. ^(NSURLResponse *response, NSData *data, NSError *error) {
  13. if ([data length] >0 && error == nil){
  14. NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  15. NSLog(@"HTML = %@", html); }
  16. else if ([data length] == 0 && error == nil){
  17. NSLog(@"Nothing was downloaded."); }
  18. else if (error != nil){
  19. NSLog(@"Error happened = %@", error);
  20. } }];

put请求:

  1. NSString *urlAsString=@"http://pixolity.com/put.php";
  2. urlAsString=[urlAsString stringByAppendingString:@"?param1=First"];
  3. urlAsString=[urlAsString stringByAppendingString:@"¶m2=Second"];
  4. NSURL *url=[NSURL URLWithString:urlAsString];
  5. NSMutableURLRequest *urlRequest=[NSMutableURLRequest requestWithURL:url];
  6. [urlRequest setTimeoutInterval:30.0f];
  7. [urlRequest setHTTPMethod:@"PUT"];
  8. NSString *body=@"bodyParaml=BodyValuel&bodyParam2=BodyValue2";
  9. [urlRequest setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];
  10. NSOperationQueue *queue=[[NSOperationQueue alloc] init];
  11. [NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
  12. if ([data length]>0&&error==nil) {
  13. NSString *html=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  14. NSLog(@"HTML=%@",html);
  15. }else if([data length]==0&&error==nil){
  16. NSLog(@"Nothing was downLoaded.");
  17. }else if(error!=nil){
  18. NSLog(@"Error Happened=%@",error);
  19. }
  20. }];

转载请注明:

本文转自:点击打开链接http://blog.csdn.net/wildcatlele

新浪微博:http://weibo.com/u/3202802157

IOS学习之路十八(通过 NSURLConnection 发送 HTTP 各种请求)的更多相关文章

  1. IOS学习之路十四(用TableView做的新闻客户端展示页面)

    最近做的也个项目,要做一个IOS的新闻展示view(有图有文字,不用UIwebview,因为数据是用webservice解析的到的json数据),自己一直没有头绪,可后来听一个学长说可以用listvi ...

  2. 嵌入式Linux驱动学习之路(十八)LCD驱动

    驱动代码: /************************************************************************* > File Name: lcd ...

  3. IOS学习之路十二(UITableView下拉刷新页面)

    今天做了一个下拉刷新的demo,主要用到了实现的开源框架是:https://github.com/enormego/EGOTableViewPullRefresh 运行结果如下: 实现很简单下载源代码 ...

  4. IOS学习之路十五(UIView 添加背景图片以及加边框)

    怎样给UIview添加背景图片呢很简单,就是先给view添加一个subview,然后设为背景图片: 效果图如下: 很简单直接上代码: //设置内容 self.myTopView.backgroundC ...

  5. IOS学习之路十(仿人人滑动菜单Slide-out Sidebar Menu)

    最近滑动菜单比较流行,像facebook和人人等都在使用滑动菜单,今天做了一个小demo大体效果如下: 这次用了一个开源的项目ECSlidingViewController这个也是一个挺著名的托管在G ...

  6. IOS学习之路十九(JSON与Arrays 或者 Dictionaries相互转换)

    今天写了个json与Arrays 或者 Dictionaries相互转换的例子很简单: 通过 NSJSONSerialization 这个类的 dataWithJSONObject: options: ...

  7. IOS学习之路十六(UItableView 通过Prepare for segue 页面传值)

    当你点击一个UITableView 的section 或者cell的时候希望把值传到另一个页面(页面是通过segue跳转的),可以通过prepareforsegure 方法传值 (我的UITableV ...

  8. IOS开发---菜鸟学习之路--(二十二)-近期感想以及我的IOS学习之路

    在不知不觉当中已经写了21篇内容 其实一开始是没有想些什么东西的 只是买了Air后 感觉用着挺舒服的,每天可以躺在床上,就一台笔记本,不用网线,不用电源,不用鼠标,不用键盘,干干脆脆的就一台笔记本. ...

  9. Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)

    在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...

随机推荐

  1. Studio-Class Diagram

    UML Design Via Visual Studio-Class Diagram 用过几个建模设计工具,小的有staruml,大的有rational rose,EA.最后发现还是Visual St ...

  2. 大话设计模式C++达到-文章16章-国家模式

    一.UML画画 二.概念 状态模式(State):当一个对象的内在状态改变时同意改变其行为.这个对象看起来像是改变了其类. 三.说明 以下是来自书本和网络的对状态模式的定义和分析: (1)状态模式同意 ...

  3. Swift中文教程(三)--流程控制

    原文:Swift中文教程(三)--流程控制 Swift用if和switch编写条件控制语句,用for-in,for,while和do-while编写循环.条件控制语句和循环语句中,小括号是可选的,但花 ...

  4. 私人定制javascript事件处理机制(浅谈)

    看到园子里关于事件监听发表的文章,我都有点不好意思写了.不过想想我的题目以私人定制作开头也就妥妥地写吧. 事件相关概念 1.事件类型 发生事件的字符串 有传统事件类型 比如表单.window事件等 D ...

  5. 【百度地图API】你看过房产地图吗?你知道房产标注是如何建立的吗?

    原文:[百度地图API]你看过房产地图吗?你知道房产标注是如何建立的吗? 你是不是看过很多房产网站?例如安居客,新浪乐居. 你是不是也想做一个能写文字的标注? 你知道怎么去实现麼? 其实,上图这样的标 ...

  6. 採用Hexo 搭建Team Blog

    採用Hexo 搭建Team Blog 首先你要会使用Git 已经GitHub,然后让我们了解下什么是静态Blog 静态博客是指 不须要数据库驱动,拥有丰富模板,通过模板标记语言生成简单html css ...

  7. inux平台的C与C++

    课堂里学不到的C与C++那些事(一) 首先,声明一下这是一个系列的文章.至于整个系列有多少篇,笔者也不知道,不知道有多少篇,也不知道多久会更新一篇.反正只有一个原则,写出来的文 章能见得人才会公布出来 ...

  8. 一个大浪Java罢工(一个)安装JDK和环境变量配置

    一个.基础知识 (一)什么是Java? Java是一种能够撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台( ...

  9. Humming Bird A20 SPI2驱动编译

    Humming Bird A20 SPI2使用编译 Yao.GUET 2014-07-17,请注明出处:http://blog.csdn.net/Yao_GUET A20上带有4个spi接口,因为Hu ...

  10. [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)

    原文:[推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆) [推荐]ORACLE PL/SQL编程详解之三: PL/SQL流程控制语句(不给规则,不成方圆) ...