您的位置:首页 > 其它

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

2015-06-11 14:23 543 查看
服务端文档:

注册

/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安全,因为数据在地址栏上不可见。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: