| Get請(qǐng)求和post請(qǐng)求簡(jiǎn)單說明 創(chuàng)建GET請(qǐng)求 1 // 1.設(shè)置請(qǐng)求路徑 2 NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username.text,self.pwd.text]; 3 NSURL *url=[NSURL URLWithString:urlStr]; 4 5 // 2.創(chuàng)建請(qǐng)求對(duì)象 6 NSURLRequest *request=[NSURLRequest requestWithURL:url]; 7 8 // 3.發(fā)送請(qǐng)求 服務(wù)器: 
 創(chuàng)建POST請(qǐng)求 1 // 1.設(shè)置請(qǐng)求路徑 2 NSURL *URL=[NSURL URLWithString:@"http://192.168.1.53:8080/MJServer/login"];//不需要傳遞參數(shù) 3 4 // 2.創(chuàng)建請(qǐng)求對(duì)象 5 NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:URL];//默認(rèn)為get請(qǐng)求 6 request.timeoutInterval=5.0;//設(shè)置請(qǐng)求超時(shí)為5秒 7 request.HTTPMethod=@"POST";//設(shè)置請(qǐng)求方法 8 9 //設(shè)置請(qǐng)求體 10 NSString *param=[NSString stringWithFormat:@"username=%@&pwd=%@",self.username.text,self.pwd.text]; 11 //把拼接后的字符串轉(zhuǎn)換為data,設(shè)置請(qǐng)求體 12 request.HTTPBody=[param dataUsingEncoding:NSUTF8StringEncoding]; 13 14 // 3.發(fā)送請(qǐng)求 服務(wù)器: 
 二、比較 建議:提交用戶的隱私數(shù)據(jù)一定要使用POST請(qǐng)求 相對(duì)POST請(qǐng)求而言,GET請(qǐng)求的所有參數(shù)都直接暴露在URL中,請(qǐng)求的URL一般會(huì)記錄在服務(wù)器的訪問日志中,而服務(wù)器的訪問日志是黑客攻擊的重點(diǎn)對(duì)象之一 用戶的隱私數(shù)據(jù)如登錄密碼,銀行賬號(hào)等。 
 三、使用 1.通過請(qǐng)求頭告訴服務(wù)器,客戶端的類型(可以通過修改,欺騙服務(wù)器) 1 // 1.設(shè)置請(qǐng)求路徑 2 NSURL *URL=[NSURL URLWithString:@"http://192.168.1.53:8080/MJServer/login"];//不需要傳遞參數(shù) 3 4 // 2.創(chuàng)建請(qǐng)求對(duì)象 5 NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:URL];//默認(rèn)為get請(qǐng)求 6 request.timeoutInterval=5.0;//設(shè)置請(qǐng)求超時(shí)為5秒 7 request.HTTPMethod=@"POST";//設(shè)置請(qǐng)求方法 8 9 //設(shè)置請(qǐng)求體 10 NSString *param=[NSString stringWithFormat:@"username=%@&pwd=%@",self.username.text,self.pwd.text]; 11 //把拼接后的字符串轉(zhuǎn)換為data,設(shè)置請(qǐng)求體 12 request.HTTPBody=[param dataUsingEncoding:NSUTF8StringEncoding]; 13 14 //客戶端類型,只能寫英文 15 [request setValue:@"ios+android" forHTTPHeaderField:@"User-Agent"]; 服務(wù)器: 
 2.加強(qiáng)對(duì)中文的處理 問題:URL不允許寫中文 在GET請(qǐng)求中,相關(guān)代碼段打斷點(diǎn)以驗(yàn)證。 在字符串的拼接參數(shù)中,用戶名使用“文頂頂”. 
 轉(zhuǎn)換成URL之后整個(gè)變成了空值。 
 提示:URL里面不能包含中文。 解決:進(jìn)行轉(zhuǎn)碼 1 // 1.設(shè)置請(qǐng)求路徑 2 NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username.text,self.pwd.text]; 3 //轉(zhuǎn)碼 4 urlStr= [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 5 NSURL *url=[NSURL URLWithString:urlStr]; 6 7 // 2.創(chuàng)建請(qǐng)求對(duì)象 8 NSURLRequest *request=[NSURLRequest requestWithURL:url]; 調(diào)試查看: 
 服務(wù)器: 
 說明:使用NSURLSession發(fā)送GET和POST請(qǐng)求請(qǐng)參考最新博文:http://www.cnblogs.com/wendingding/p/5168772.html | 
|  |