GET & POST 登录

GET 登录

- (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 没有变化
时间: 2024-07-30 18:55:58

GET & POST 登录的相关文章

华为交换机配置telnet和SSH登录设备(简单实用版)

Telnet是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.在终端使用者的电脑上使用telnet程序,用它连接到服务器.终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样.可以在本地就能控制服务器.要开始一个telnet会话,必须输入用户名和密码来登录服务器.Telnet是常用的远程控制Web服务器的方法,极大的提高了用户操作的灵活性. 测试拓扑图 配置telnet: 1.1普通认证登录

shiro实现APP、web统一登录认证和权限管理

先说下背景,项目包含一个管理系统(web)和门户网站(web),还有一个手机APP(包括Android和IOS),三个系统共用一个后端,在后端使用shiro进行登录认证和权限控制.好的,那么问题来了web和APP都可以用shiro认证吗?两者有什么区别?如果可以,解决方案是什么?看着大家焦急的小眼神,接下来挨个解决上面的问题. web和APP可以用shiro统一登录认证吗? 可以.假如web和APP都使用密码登录的话,那没的说肯定是可以的,因为对于shiro(在此不会介绍shiro详细知识,只介

微信网页第三方登录原理

微信开放平台和公众平台的区别 1.公众平台面向的时普通的用户,比如自媒体和媒体,企业官方微信公众账号运营人员使用,当然你所在的团队或者公司有实力去开发一些内容,也可以调用公众平台里面的接口,比如自定义菜单,自动回复,查询功能.目前大多数微信通过认证之后,都在做这个事情. mp.weixin.qq.com 2.开放平台面向的开发者和第三方独立软件开发商.我觉得开发平台最大的开放就是微信登录.当年腾讯没有花大力气去做统一登录这个事情,导致目前各个网站都要弄一套登录机制.好在他们现在认清了局势.开发者

linux无密码登录

关于这个小操作,纠结了很久,刚开始就是两步走: ssh-keygen -t rsa 三次回车生成密钥对 ssh-copy-id -i /root/.ssh/id_rsa.pub 1.1.1.1 回传公钥到需要ssh的服务器 后来发现了ssh-key -N "" -f /root/.ssh/id_rsa这个命令,可以跳过回车,直接生成,如获至宝. 再后来,发现ssh-copy-id也麻烦,发现了cat /root/.ssh/id_rsa.pub > /root/.ssh/autho

微信公众号之订阅号(已认证)实现oauth2授权登录详细步骤介绍

一: 简介 通过 微信公众平台---->权限接口 可以得知 微信的订阅号是没有授权登录接口的,只有服务号才有该权限.这点微信公众平台在多处反复强调 最终的事实是:微信订阅号是可以实现授权登录的! 二:具体实现步骤: 1. 首先在 微信公众平台(https://mp.weixin.qq.com/) [开发]----> [基本配置]----->[服务器配置]完成基本的配置信息 URL: 这里的地址我写的是我们HTML5项目的某个Controller或Servlet的地址,例如 http://

NetScaler OTP双因子身份认证登录演示

NetScaler OTP 应用场景 NetScaler OTP(one time password)是双因子身份证的一种,利用用户名密码+6位时间型令牌认证码,完成身份认证. 在以前的双因子解决方案中NetScalerGateway需要与第三方 Radius服务器集成,实现双因子认证.对于客户来说,需要额外支付双因子身份认证的费用,提高了解决方案成本. NetScaler OTP解决方案利用NetScaler 源生功能,配合手机APP  google authenticator,不需要其他成本

python实现网页登录时的rsa加密流程

对某些网站的登录包进行抓包时发现,客户端对用户名进行了加密,然后传给服务器进行校验. 使用chrome调试功能断点调试,发现网站用javascript对用户名做了rsa加密. 为了实现网站的自动登录,需要模拟这个加密过程. 网上搜了下关于rsa加密的最简明的解释: rsa加密是非对称加密算法,该算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥.公钥是可发布的供任何人使用,私钥则为自己

windows下使用密钥登录Linux及xshell代理转发

1.密钥登录原理 一般我们使用xshell访问远程主机(Linux主机)时,都是先请管理员给我们开一个账户,即为我们设置一个一个用户名和对应的密码,然后我们就可以使用下面的方式登录到远程主机了: 在这种情况下,我们使用的是上面密码登录,也就是说只要知道你这个账号及密码的人都可以在任何地方登录到远程主机,因此安全性较低. 使用密钥登录则不同,他使用的是上图中的public key方式登录,这种方式涉及到一个加密算法RSA,这个算法先生成一个密钥对(公钥和私钥), 我们提供自己的公钥给远程主机,在登

运行Chromium浏览器缺少google api密钥无法登录谷歌账号的解决办法

管理员身份运行CMD,然后依次输入以下三行内容: setx GOOGLE_API_KEY "AIzaSyAUoSnO_8k-3D4-fOp-CFopA_NQAkoVCLw"setx GOOGLE_DEFAULT_CLIENT_ID "6307505647-6knmr84r2pj2leudg3pp1j0h1licd6b9.apps.googleusercontent.com"setx GOOGLE_DEFAULT_CLIENT_SECRET "rbeWhXT

Python:hashlib加密模块,flask模块写登录接口

hashlib模块 主要用于加密相关的操作,(比如说加密字符串)在python3的版本里,代替了md5和sha模块,主要提供 sha1, sha224, sha256, sha384, sha512 ,md5 这些加密方式 import  hashlib m = hashlib.md5()   #用md5加密的方式(md5加密后无法解密),创建一个md5的对象 m.update(b"Hello")  #b代表二进制字节bytes,把字符串hello转成字节,然后加密:用b给一个变量转换