GET & POST 登录
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,提示:在不同的公司使用的后台接口是不一样的jsp,aspx... - 如果要带参数,使用
?衔接 - 参数格式:
参数名=值 - 如果有多个参数,使用
&连接
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];
- URL 格式
POST
URL中不包含任何参数,直接指定脚本路径即可
Request
GET - 是网络访问使用频率最高的方法,从服务器获取数据,
URLRequest的默认方法就是GET- 不需要做任何改动
POST
- 需要指定 HTTP 的访问方法:
POST - 所有的数据参数都在数据体中指定,数据内容可以从
Firebug中粘贴 - 数据格式和
GET方法的参数定义非常类似,没有?
- 需要指定 HTTP 的访问方法:
Connection
- 将
请求发送给服务器 - 返回服务器的二进制数据实体
- 是网络访问中,最单纯的方法
- 无论
GET还是POST方法,Connection没有变化
GET & POST 登录的更多相关文章
- 【小程序分享篇 二 】web在线踢人小程序,维持用户只能在一个台电脑持登录状态
最近离职了, 突然记起来还一个小功能没做, 想想也挺简单,留下代码和思路给同事做个参考. 换工作心里挺忐忑, 对未来也充满了憧憬与担忧.(虽然已是老人, 换了N次工作了,但每次心里都和忐忑). 写写代 ...
- TODO:Laravel 内置简单登录
TODO:Laravel 内置简单登录 1. 激活Laravel的Auth系统Laravel 利用 PHP 的新特性 trait 内置了非常完善好用的简单用户登录注册功能,适合一些不需要复杂用户权限管 ...
- web全栈开发之网站开发二(弹出式登录注册框前端实现-类腾讯)
这次给大家分享的是目前很多网站中流行的弹出式登录框,如下面的腾讯网登录界面,采用弹出式登录的好处是大大提升了网站的用户体验和交互性,用户不用重新跳转到指定的页面就能登录,非常方便 先来个演示地址 要实 ...
- 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】
说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...
- PHP验证用户登录例子-学习笔记
1.基本流程: 2.UML类图: 3.PHP代码: 3.1 index.php <?php /** * Created by PhpStorm. * User: andy * Date: 16- ...
- AJAX实现登录界面
使用php跳转界面和AJAX都可实现登录界面的跳转的登录失败对的提醒.但是,php跳转的方式 需要额外加载其他界面,用户体验差.AJAX可实现当前页面只刷新需要的数据,不对当前网页进行 重新加载或者是 ...
- 微信网页开发之获取用户unionID的两种方法--基于微信的多点登录用户识别
假设网站A有以下功能需求:1,pc端微信扫码登录:2,微信浏览器中的静默登录功能需求,这两种需求就需要用到用户的unionID,这样才能在多个登录点(终端)识别用户.那么这两种需求下用户的unionI ...
- 基于SignalR的消息推送与二维码描登录实现
1 概要说明 使用微信扫描登录相信大家都不会陌生吧,二维码与手机结合产生了不同应用场景,基于二维码的应用更是比较广泛.为了满足ios.android客户端与web短信平台的结合,特开发了基于Singl ...
- 登录(ajax提交数据和后台校验)
1.前台ajax数据提交 <form id="login_form" action="" method="POST"> < ...
- 著名ERP厂商的SSO单点登录解决方案介绍一
SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应用中用于同一个用户 ...
随机推荐
- 如何解决安卓SDK无法下载Package的问题
转载自:http://jingyan.baidu.com/article/8275fc86dbe84046a03cf69d.html 有些用户在安装好Android SDK后,打开Android SD ...
- Tomcat学习笔记 - 错误日志 - Tomcat部署项目或修改xml配置出现无法保存的情况(拒绝访问)
原因分析:(windows下) 可能有人会发现在编辑好 tomcat-users.xml 文件后无法保存,原因是使用的用户没有权限修改文件,可能是把 Tomcat 发行包放到了一个需要管理员权限才能修 ...
- C# 加密可逆
现在一直在做一个小软件,公司的通讯录系统,也没什么功能增删改查,这算是我来这个公司实习的第一件事吧. 在修改个人信息的时候一直对于密码显示这个存在矛盾,不知道应该是要哪种形式去做,后来自己就先用md5 ...
- InetAddress类的使用
1.1. 简介 IP地址是IP使用的32位(IPv4)或者128位(IPv6)位无符号数字,它是传输层协议TCP,UDP的基础.InetAddress是Java对IP地址的封装,在java.net中有 ...
- shell脚本练习(随机取名)
1.写一个脚本,实现随机选人功能,脚本需传递一个参数进去,如 pick.sh 1 出现结果"家驹” pick.sh 3 出现结果 "落叶" "jason ...
- [翻译]Orchard文档-命令行基架
Code generation是一个用于创建附加文件和扩展的自动化任务Orchard模块.这个功能对开发者创建控制器[Controllers].数据迁移类[Data Migration].模块[Mod ...
- information_schema.partitions 学习
1.partitions 表中的常用列说明: 1.table_schema:表所在的数据库名 2.table_name:表名 3.partition_method:表分区采用的分区方法 4.parti ...
- qt 多线程之间通讯
问题描述:界面线程MainApp为主线程,工作线程MyThread为一子线程,从工作线程向主线程传递字符串用于在主线程中显示. Qt的信号与槽机制可以将任何继承自QObject类的对象捆绑在一起,使不 ...
- QT字体的设置
摘要: QT4.7.0在移植到开发板上的时候,中文支持是必不可少的,如何让QT支持中文,如何制作QT支持的字体文件,如何使QT UI编辑器中的字号与开发板中的字号一致.作者通过实验进行了一一验证. 介 ...
- 【Mysql 调用存储过程,输出参数的坑】
玛德,数据行都返回过来了,就是没有输出参数!!! 扒官方设计文档:这么一段 雷死人了!!! When a stored procedure is called using MySqlCommand.E ...