ASI實現的注冊方法:利用http的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安全,因為數據在地址欄上不可見。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM