服務端文檔:
注冊
/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安全,因為數據在地址欄上不可見。