GET 登录

@property(nonatomic,assign)long  long hasReceivedContentLength;


- (void)getLogin {
NSString *urlString = [NSString stringWithFormat:@"http://localhost/login.php?username=%@&password=%@", self.username, self.pwd];
NSURL *url = [NSURL URLWithString:urlString]; NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataDontLoad timeoutInterval:10.0];
// 默认就是 GET 方法,无需专门指定
NSLog(@"%@", request.HTTPMethod); [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { id result = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
NSLog(@"%@ - %@", response, result);
}];
}

URL 的基本格式

  • 登录的脚本:login.php,提示:在不同的公司使用的后台接口是不一样的 jspaspx...
  • 如果要带参数,使用 ? 衔接
  • 参数格式:参数名=值
  • 如果有多个参数,使用 & 连接

GET 缓存

  • GET 缓存的数据会保存在 Cache 目录中 \bundleId 下 Cache.db 中

    • cfurl_cache_receiver_data,缓存所有的请求数据
    • cfurl_cache_response,缓存所有的响应

以上操作仅供演示,相关内容内容会在后续 SQLite 讲解

POST 登录

- (void)postLogin {
NSURL *url = [NSURL URLWithString:@"http://localhost/login.php"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; request.HTTPMethod = @"POST";
NSString *bodyStr = [NSString stringWithFormat:@"username=%@&password=%@", self.username, self.pwd];
request.HTTPBody = [bodyStr dataUsingEncoding:NSUTF8StringEncoding]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { id result = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
NSLog(@"%@ - %@", response, result);
}];
}

GET & POST 对比

URL

  • GET - 真正的变化都在 URL 中

    • URL 格式

      • login.php 负责登录的脚本(提示,服务器脚本可以有很多种,php是上课使用的一种)
      • 如果接参数,使用 ?
      • 参数格式,值对:参数名=值
      • 多个参数,使用 & 连接
      • 如果 URL 字符串中有中文/空格等特殊字符,需要添加百分号转义
        [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  • POST

    • URL 中不包含任何参数,直接指定脚本路径即可

Request

  • GET - 是网络访问使用频率最高的方法,从服务器获取数据, URLRequest 的默认方法就是 GET

    • 不需要做任何改动
  • POST

    • 需要指定 HTTP 的访问方法:POST
    • 所有的数据参数都在数据体中指定,数据内容可以从 Firebug 中粘贴
    • 数据格式和 GET 方法的参数定义非常类似,没有 ?

Connection

  • 请求发送给服务器
  • 返回服务器的二进制数据实体
  • 是网络访问中,最单纯的方法
  • 无论 GET 还是 POST 方法,Connection 没有变化

最新文章

  1. 相克军_Oracle体系_随堂笔记010-SCN
  2. Spark:一个高效的分布式计算系统
  3. JSP自定义标签之Hello Costom tag小例子
  4. redmine Windows装配
  5. 例题6-5 Boxes in a line uVa12657
  6. Web开发人员必备工具-Emmet (Zen Coding)
  7. java中关于类的封装与继承,this、super关键字的使用
  8. 利用Fragment创建动态UI 之 Fragment之间的通信
  9. C语言获取网页源代码的学习所得
  10. debian系统下安装ssh服务
  11. node.js 入门教程(beginnder guide
  12. 让您的Xcode键字如飞
  13. 爬取知名社区技术文章_pipelines_4
  14. JDBCTM中Statement接口提供的execute、executeQuery和executeUpdate之间的区别
  15. 流程图 Graphviz - Graph Visualization Software
  16. SRTP讨论
  17. 完整的Django入门指南学习笔记3
  18. angularjs探秘<五> 举足轻重的scope
  19. Sencha extjs 的安装
  20. C#中的集合(HashTable与Array类)【转】

热门文章

  1. FullCalendar 的学习笔记(二)
  2. Oracle - 找不到原因的无效字符
  3. SPOJ 4110 Fast Maximum Flow (最大流模板)
  4. LinearLayout的一些注意事项
  5. 为js数组扩展方法
  6. iOS开发多线程-线程间通讯
  7. 客户端HttpClient处理 Servlet Gzip
  8. java 防止sql注入的方法(非原创)
  9. [转]ActiveMQ 即时通讯服务 浅析
  10. [Spring boot] web应用返回jsp页面