站点连接 :http://www.gaoshou.me/uid/19125624   

不用不知道,一用吓一跳。

每一个月的手机话费不用愁了。

仅限苹果手机

1、同步请求能够从因特网请求数据。一旦发送同步请求。程序将停止用户交互,直至server返回数据完毕,才干够进行下一步操作,

2、异步请求不会堵塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依旧能够对UI进行操作,程序能够继续执行

3、GET请求。将參数直接写在訪问路径上。

操作简单,只是easy被外界看到,安全性不高,地址最多255字节。

4、POST请求,将參数放到body里面。

POST请求操作相对复杂,须要将參数和地址分开,只是安全性高。參数放在body里面,不易被捕获。

1、    同步GET请求

   //第一步,创建URL
    NSURL *url = [NSURLURLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
   
    //第二步,通过URL创建网络请求
    NSURLRequest *request = [[NSURLRequest alloc]initWithURL:urlcachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
    //NSURLRequest初始化方法第一个參数:请求訪问路径,第二个參数:缓存协议,第三个參数:网络请求超时时间(秒)
      当中缓存协议是个枚举类型包括:
      NSURLRequestUseProtocolCachePolicy(基础策略,一般使用此策略)
      NSURLRequestReloadIgnoringLocalCacheData(忽略本地缓存)
      NSURLRequestReturnCacheDataElseLoad(首先使用缓存。假设没有本地缓存。才从原地址下载)
      NSURLRequestReturnCacheDataDontLoad(使用本地缓存,从不下载,假设本地没有缓存。则请求失败。此策略多用于离线操作)
     NSURLRequestReloadIgnoringLocalAndRemoteCacheData(无视不论什么缓存策略,不管是本地的还是远程的,总是从原地址又一次下载)
      NSURLRequestReloadRevalidatingCacheData(验证本地数据与远程数据是否同样。假设不同则下载远程数据,否则使用本地数据。)
    //第三步。连接server
    NSData *received = [NSURLConnectionsendSynchronousRequest:request returningResponse:nil error:nil];
   
    NSString *str = [[NSString alloc]initWithData:receivedencoding:NSUTF8StringEncoding];
   
    NSLog(@"%@",str);

2、同步POST请求
    //第一步,创建URL
    NSURL *url = [NSURLURLWithString:@"http://api.hudong.com/iphonexml.do"];
    //第二步,创建请求
    NSMutableURLRequest *request = [[NSMutableURLRequestalloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
    [request setHTTPMethod:@"POST"];//设置请求方式为POST,默觉得GET
    NSString *str = @"type=focus-c";//设置參数
    NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
    [request setHTTPBody:data];
    //第三步,连接server
   
    NSData *received = [NSURLConnectionsendSynchronousRequest:request returningResponse:nil error:nil];
   
    NSString *str1 = [[NSString alloc]initWithData:receivedencoding:NSUTF8StringEncoding];
   
    NSLog(@"%@",str1);

3、异步GET请求
    //第一步,创建url
    NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
    //第二步,创建请求
    NSURLRequest *request = [[NSURLRequest alloc]initWithURL:urlcachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
    //第三步。连接server
    NSURLConnection *connection = [[NSURLConnectionalloc]initWithRequest:request delegate:self];

4、异步POST请求
    //第一步,创建url
    NSURL *url = [NSURLURLWithString:@"http://api.hudong.com/iphonexml.do"];
    //第二步,创建请求
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:urlcachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
    [request setHTTPMethod:@"POST"];
    NSString *str = @"type=focus-c";
    NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
    [request setHTTPBody:data];
    //第三步,连接server
    NSURLConnection *connection = [[NSURLConnectionalloc]initWithRequest:request delegate:self];

5、异步请求的代理方法
//接收到server回应的时候调用此方法
- (void)connection:(NSURLConnection *)connectiondidReceiveResponse:(NSURLResponse *)response
{
    NSHTTPURLResponse *res = (NSHTTPURLResponse *)response;
    NSLog(@"%@",[res allHeaderFields]);
    self.receiveData = [NSMutableData data];
 

                             
}
//接收到server数据传输的时候调用,此方法依据数据大小执行若干次
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [self.receiveData appendData:data];
}
//数据传完之后调用此方法
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSString *receiveStr = [[NSStringalloc]initWithData:self.receiveData encoding:NSUTF8StringEncoding];
    NSLog(@"%@",receiveStr);
}
//网络请求过程中,出现不论什么错误(断网,连接超时等)会进入此方法
-(void)connection:(NSURLConnection *)connection
 didFailWithError:(NSError *)error
{
    NSLog(@"%@",[error localizedDescription]);
}

编辑文章 - 博客频道 - CSDN.NET的更多相关文章

  1. 小议common lisp程序开发流程 - Ever 17 - 博客频道 - CSDN.NET

    小议common lisp程序开发流程 - Ever 17 - 博客频道 - CSDN.NET 小议common lisp程序开发流程 分类: lisp 2011-04-17 20:59 1316人阅 ...

  2. 最牛B的编码套路 - 呦呦鹿鸣 - 博客频道 - CSDN.NET

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  3. java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET

    java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET 亲,“社区之星”已经一周岁了!      社区福利快来领取免费参加MDCC大会机会哦    Tag功能介绍—我们 ...

  4. C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET

    C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET C++ STL中Map的相关排序操作:按Key排序和按Value排序 分类: C ...

  5. Mybatis 示例之 Association - 偶尔记一下 - 博客频道 - CSDN.NET

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  6. Notepad++前端开发常用插件介绍 - BorisHuai前端修炼 - 博客频道 - CSDN

    Notepad++前端开发常用插件介绍 - BorisHuai前端修炼 - 博客频道 - CSDN.NET http://blog.csdn.net/borishuai/article/details ...

  7. 帧与场 - djf_1985的专栏 - 博客频道 - CSDN.NET

    帧与场 - djf_1985的专栏 - 博客频道 - CSDN.NET 电视信号是通过摄像机对自然景物的扫描并经光电转换形成的.扫描方式分为“逐行扫描”和“隔行扫描”.“逐行扫描”指每幅图像均是由电子 ...

  8. 知道创宇爬虫题--代码持续更新中 - littlethunder的专栏 - 博客频道 - CSDN.NET

    知道创宇爬虫题--代码持续更新中 - littlethunder的专栏 - 博客频道 - CSDN.NET undefined 公司介绍 - 数人科技 undefined

  9. 采集爬虫中,解决网站限制IP的问题? - wendi_0506的专栏 - 博客频道 - CSDN.NET

    采集爬虫中,解决网站限制IP的问题? - wendi_0506的专栏 - 博客频道 - CSDN.NET undefined

随机推荐

  1. POJ-2415 Hike on a Graph (BFS)

    Description "Hike on a Graph" is a game that is played on a board on which an undirected g ...

  2. HDOJ1003

    #include<iostream> using namespace std; int main() { ],t=,m; cin >> n; while(n--) { cin ...

  3. SQL Server数据库入门学习总结

    数据库基本是由表,关系,操作组成:对于初学者,首先要学的是: 1.数据库是如何存储数据的 —— 表.约束.触发器 2.数据库是如何操作数据的 —— insert,update,delete.T-sql ...

  4. 无法使用BIPublisher开发报表

    我的机器是windows7,word版本问word 2010 32bit. 以前BIPublisher(安装的是BIPublisher 10.1.33版本)能正常使用,突然有一天再想使用他的时候,报以 ...

  5. learning docker steps(8) ----- docker network 初次体验

    参考: docker network 主要是介绍了docker 容器之间的组网模式, 一般来说实像组网主要是依赖于bridge iptalbes vlan来实现,但是附带的如端口转发会降低效率. 新型 ...

  6. (剑指Offer)面试题59:对称的二叉树

    题目: 请实现一个函数,用来判断一颗二叉树是不是对称的. 注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 思路: 对于一棵二叉树,从根结点开始遍历, 如果左右子结点有一个为NULL,那 ...

  7. Flask初级(十)flash与前台交互post详解

    Project name :Flask_Plan templates:templates static:static POST提交方式,首先要有表单 老实去改模板文件吧. 查询窗口我准备放在页面最顶上 ...

  8. JQ插件写法 扩展JQ方法

    目录: 1.基本JQ扩展插件js的格式 2.对JQ选中元素的方法的扩展,调用类似于$("selector").myMethod(),这里的myMethod是自己扩展的方法,与.cl ...

  9. L1-001 Hello World

    这道超级简单的题目没有任何输入. 你只需要在一行中输出著名短句“Hello World!”就可以了. 输入样例: 无 输出样例: Hello World! #include<stdio.h> ...

  10. L232 No methane on Mars

    On earth, most of the methane in the atmosphere has been belched by living organisms, so finding the ...