ASI 实现注册方法的小例子(get和post方式)

服务端文档:

注册

/my/register.php

输入参数:

参数说明: username 用户名 password 密码 email 邮箱

成功返回值:
{
"code": "registered",
"message": "注册成功了,进入个人空间" }

注册失败:

{
"code": "user_name_already_exists", "message": "用户名已经存在"

}

导入的包:

// GET
#import "ASIHttpRequest.h"
// POST
#import "ASIFormDataRequest.h"

注册方法代码

- (void) registerToSns:(id)sender {
    // http://192.168.100.1/sns/my/user_list.php?format=json   GET/POST
    // HTTP协议 POST > GET
    NSString *username = usernameField.text;
    NSString *password = passwordField.text;
    NSString *email = emailField.text;
#if 0 // GET
    NSString *s = [NSString stringWithFormat:
        @"%@/my/register.php?username=%@&password=%@&email=%@",
                   QFSNS_HOST,
                   username, password, email];
    NSLog(@"sns is %@", s);
    NSURL *url = [NSURL URLWithString:s];
    ASIHTTPRequest *r = [ASIHTTPRequest requestWithURL:url];
#else  // POST
    NSString *s = [NSString stringWithFormat:
            @"%@/my/register.php?format=xml", QFSNS_HOST];
    //  http://192.168.100.1/sns/my/user_list.php
    NSURL *url = [NSURL URLWithString:s];
    ASIFormDataRequest *r = [ASIFormDataRequest requestWithURL:url];
    // 创建POST请求 用了ASIFormDataRequest也必须是有setPostValue才被服务端认为是post方式,无参数时setPost:nil
    [r setPostValue:username forKey:@"username"];
    [r setPostValue:password forKey:@"password"];
    [r setPostValue:email forKey:@"email"];   [r setRequestMethod:@"POST"];//设置数据接受方式为post
// 收到{"code":"registered","message":"\u6ce8\u518c\u6210\u529f\u4e86\uff0c\u8fdb\u5165\u4e2a\u4eba\u7a7a\u95f4","m_auth":"07caUz7QkiKUd2dlFgU3kA8DVlnEW8DStHdHDhLj6aTHbEZ\/LScPvAVu8WML\/0TITVGL\/NhKXw\/JlISU6QVrLQ"}
#endif
    r.delegate = self;
    r.tag = 100;
    [r startAsynchronous];
}

  一般在浏览器中输入网址访问资源都是通过GET方式;

  而在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交。

  一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查 ,改 ,增 ,删 4个操作。GET一般用于获取/查询 资源信息,而POST一般用于更新 资源信息。

  其他差别:

    1. GET使用URL或Cookie传参。而POST将数据放在BODY中。

    2. GET的URL会有长度上的限制,则POST的数据则可以非常大。

    3. POST比GET安全,因为数据在地址栏上不可见。

时间: 2024-08-30 09:56:39

ASI 实现注册方法的小例子(get和post方式)的相关文章

关于 JS 面向对象继承属性和方法的小例子

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <h1>关于 JS 面向对象继承属性和方法的小例子</h1> </body> </html> <script> //人的构造函

PL/SQL实现JAVA中的split()方法的小例子

众所周知,java中为String类提供了split()字符串分割的方法,所以很容易将字符串以指定的符号分割为一个字符串数组.但是在pl/sql中并没有提供像java中的split()方法,所以要想在pl/sql中实现字符串的分割还需要自己动手.由于在项目中需要用到此类方法,所以自己研究了一下,方便以后参考.这里以逗号作为分隔符为例,代码如下: 1 declare 2 v_str varchar2(200) := 'abd,324,u78,23f,sd09,2345,dsaf,9079'; 3

Runtime的几个小例子(含Demo)

一.什么是runtime(也就是所谓的"运行时",因为是在运行时实现的.)           1.runtime是一套底层的c语言API(包括很多强大实用的c语言类型,c语言函数);  [runtime运行系统]           2.实际上,平时我们编写的oc代码,底层都是基于runtime实现的;                             [OC语言的动态性]  运行时系统 (runtime system),对于C语言,函数的调用在编译的时候会决定调用哪个函数.对

Hadoop中RPC协议小例子报错java.lang.reflect.UndeclaredThrowableException解决方法

最近在学习传智播客吴超老师的Hadoop视频,里面他在讲解RPC通信原理的过程中给了一个RPC的小例子,但是自己编写的过程中遇到一个小错误,整理如下: log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).log4j:WARN Please initialize the log4j system properly.log4j:WARN See

spring小例子-springMVC+mybits整合的小例子

这段时间没更博,找房去了...   吐槽一下,自如太坑了...承诺的三年不涨房租,结果今年一看北京房租都在涨也跟着涨了... 而且自如太贵了,租不起了.. 突然有点理解女生找对象要房了..   搬家太受罪了... 今天更一下springMVC整合mybits形成最简单的网站demo. 大概效果就是这样的:左边是数据库查询结果,右边是页面访问结果: 首先,一个简单的springMVC小例子可以看这个http://www.cnblogs.com/xuejupo/p/5236448.html 这是在这

SpringMVC+hibernate整合小例子,用户的增删查改

SpringMVC+hibernate整合小例子,用户的增删查改 对于使用框架写项目,我的第一反应的把所有需要的jar文件引入. 因为我用的是JDK1.8,当使用spring3.2 注解的时候会出现问题,所以最终使用的spring4.0.  hibernate使用的版本为4.0 .至于一些依赖包的版本就是看别人的资料拿的. 然后看下整体的项目结构 第一步写的是web.xml配置文件,当然有写东西是后面加上去的,不是一步到位的,比如说控制post方式的乱码.以及无法时候JS文件等一些静态文件,后面

php+jquery+ajax+json简单小例子

直接贴代码: Php代码: <html> <title>php+jquery+ajax+json简单小例子</title> <?php header("Content-Type:text/html;charset=utf-8"); ?> <head> <script type="text/javascript" src="http://code.jquery.com/jquery.min.j

COM2 --- 小例子

在COM1 的小例子中,,我们大概知道什么是组件类 ,什么是接口了.这小节呢,我们来实现一下由一个组件类去实现两个接口的过程. 新建项目: 我们的 解决方案的 名字是 ComDemoCode ,项目名字是 MathToolKit  这表示 我们的 项目 自动 生成的 DLL  的名字就是 MathToolKit(数学工具包). 我们的继承关系 有必要 给大家 先 列出来,让大家 看看 在这里面,IPrimerMath接口 提供 + - * / % 五个基本运算方法,IAdvanceMath接口提

用两个小例子来解释单例模式中的“双重锁定”

学习单例模式时,好多人都不太理解双重锁定.学完后突然想到一个很有趣的例子. 单例模式结构图: 代码: Singleton类 class Singleton { private static Singleton instance; private static readonly object syncRoot = new object(); //程序运行时创建一个静态只读的进程辅助对象 private Singleton() { } //用private修饰构造方法,防止外界利用new创建此类实例