示例:(在storyboard中拖兩個控制項textField、一個UIButton,連線(userNameText、password、login)) @interface ViewController() @property(nonatomic,weak)IBOutlet UITextField * ...
示例:(在storyboard中拖兩個控制項textField、一個UIButton,連線(userNameText、password、login))
@interface ViewController()
@property(nonatomic,weak)IBOutlet UITextField *userNameText;
@property(nonatomic,weak)IBOutlet UITextField *passWord;
@end
-(IBAction)login
{
[self postLoginWithUserName:self.userNameText.text password:self.passWord.text];
}
post登陸
-(void)postLoginWithUserName:(NSString *)userName password:(NSString *)password
{
//1.url
NSURL *url = [NSURL URLWithString:@"http://本機IP/login.php"];
//2.request
NSMutableNSURLRequest *request = [NSMutableNSURLRequest requestWithURL:url];
//對於post請求的數據題要和request一起提交
request.HTTPMethod = @"POST";
//準備數據題
NSString *bodyString = [NSString *stringWithFormat:@"username=%@&password=%@",username,password];
//設置二進位數據
request.HTTPBody = [bodyString dataUsingEncoding:NSUTF8StringEncoding];
//3.發送網路連接,獲取二進位數據
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLReponse *response,NSData *data,NSError *connectionError)];
NSString *result = [NSString alloc]initWithData:data encoding:NSUTF8Encoding];
}
get登陸
-(void)getLoginWithUserName:(NSString *)userName password:(NSString *)password
{
//1.url
NSString *urlString = [NSString stringWithFormat:@"http://本機IP地址/login.php?username = %@&password = %@",userName,password];
//百分號轉義
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:urlString];
//2.request
NSURLRequest *request = [NSURLRequest requestWithURL:url];
//3.發送網路連接,獲取二進位數據
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLReponse *response,NSData *data,NSError *connectionError)];
NSString *result = [NSString alloc]initWithData:data encoding:NSUTF8Encoding];
}
小結:
1.
get:
http://本機IP地址/login.php?username = %@&password = %@
http://ip地址/登陸的腳本文件?(後面有參數)參數變數名 = 參數數值&(繼續接參數)變數名 = 數值
post
http://ip地址/登陸的腳本
2.request
get:什麼都不需要處理,因為參數已經在URL中指定了
post:指定訪問方法
HTTPMethod = @"post";
指定二進位數據
HTTPBody = 參數字元串的二進位數據
3.NSURLConnection 非同步
get和post一樣
在實際網路開發中,真正會發生變化的地方就在請求