iOS開發網絡篇—GET請求和POST請求android
1、GET請求和POST請求簡單說明ios
建立GET請求服務器
1 // 1.設置請求路徑 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.建立請求對象 6 NSURLRequest *request=[NSURLRequest requestWithURL:url]; 7 8 // 3.發送請求
服務器:網絡
建立POST請求post
1 // 1.設置請求路徑 2 NSURL *URL=[NSURL URLWithString:@"http://192.168.1.53:8080/MJServer/login"];//不須要傳遞參數 3 4 // 2.建立請求對象 5 NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:URL];//默認爲get請求 6 request.timeoutInterval=5.0;//設置請求超時爲5秒 7 request.HTTPMethod=@"POST";//設置請求方法 8 9 //設置請求體 10 NSString *param=[NSString stringWithFormat:@"username=%@&pwd=%@",self.username.text,self.pwd.text]; 11 //把拼接後的字符串轉換爲data,設置請求體 12 request.HTTPBody=[param dataUsingEncoding:NSUTF8StringEncoding]; 13 14 // 3.發送請求
服務器:url
2、比較spa
建議:提交用戶的隱私數據必定要使用POST請求調試
相對POST請求而言,GET請求的全部參數都直接暴露在URL中,請求的URL通常會記錄在服務器的訪問日誌中,而服務器的訪問日誌是黑客攻擊的重點對象之一日誌
用戶的隱私數據如登陸密碼,銀行帳號等。code
3、使用
1.經過請求頭告訴服務器,客戶端的類型(能夠經過修改,欺騙服務器)
1 // 1.設置請求路徑 2 NSURL *URL=[NSURL URLWithString:@"http://192.168.1.53:8080/MJServer/login"];//不須要傳遞參數 3 4 // 2.建立請求對象 5 NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:URL];//默認爲get請求 6 request.timeoutInterval=5.0;//設置請求超時爲5秒 7 request.HTTPMethod=@"POST";//設置請求方法 8 9 //設置請求體 10 NSString *param=[NSString stringWithFormat:@"username=%@&pwd=%@",self.username.text,self.pwd.text]; 11 //把拼接後的字符串轉換爲data,設置請求體 12 request.HTTPBody=[param dataUsingEncoding:NSUTF8StringEncoding]; 13 14 //客戶端類型,只能寫英文 15 [request setValue:@"ios+android" forHTTPHeaderField:@"User-Agent"];
服務器:
2.增強對中文的處理
問題:URL不容許寫中文
在GET請求中,相關代碼段打斷點以驗證。
在字符串的拼接參數中,用戶名使用「文頂頂」.
轉換成URL以後整個變成了空值。
提示:URL裏面不能包含中文。
解決:進行轉碼
1 // 1.設置請求路徑 2 NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username.text,self.pwd.text]; 3 //轉碼 4 urlStr= [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 5 NSURL *url=[NSURL URLWithString:urlStr]; 6 7 // 2.建立請求對象 8 NSURLRequest *request=[NSURLRequest requestWithURL:url];
調試查看:
服務器: