ios开发网络篇—Get请求和Post请求

一.Get请求和Post请求简单说明
创建Get请求

//1.设置请求路径
NSString *urlStr = [NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username.text,self.pwd.text];
NSURL *url = [NSURL URLWithString:urlStr];
//2.创建请求对象
NSURLRequest *request = [NSURLRequest requestWithURL:url];

创建Post请求

//1.设置请求路径
NSURL *url = [NSURL URLWithString:@"http://192.168.1.53:8080/MJServer/login"];
//2.创建请求对象
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL];    //默认为get请求
request.timeoutInterval=5.0;    //设置请求超时5秒
request.HTTPMethod=@"POST";     //设置请求方法

//设置请求体
NSString *param = [NSString stringWithFormat:@"username=%@&pwd=%@",self.username.text,self.pwd.text];
//把拼接后的字符串转换为data,设置请求体
request.HTTPBody = [param dataUsingEncoding:NSUTF8StringEncoding];

二.比较
建议:提交用户的隐私数据一定要使用Post请求
相对Post请求而言,Get请求的所有参数都直接暴露在URL中,请求的URL一般会记录在服务器的访问日志中,而服务器的访问日志是黑客攻击的重点对象之一
用户的隐私数据如登录密码,银行帐号等

三.使用
1.通过请求头告诉服务器,客户端的类型(可以通过修改,欺骗服务器)

//1.设置请求路径
NSURL *URL=[NSURL URLWithString:@"http://192.168.1.53:8080/MJServer/login"];//不需要传递参数

//2.创建请求对象
NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:URL];//默认为get请求
request.timeoutInterval=5.0;//设置请求超时为5秒
request.HTTPMethod=@"POST";//设置请求方法

//设置请求体
NSString *param=[NSString stringWithFormat:@"username=%@&pwd=%@",self.username.text,self.pwd.text];
//把拼接后的字符串转换为data,设置请求体
request.HTTPBody=[param dataUsingEncoding:NSUTF8StringEncoding];

//客户端类型,只能写英文
[request setValue:@"ios+android" forHTTPHeaderField:@"User-Agent"];

2.加强对中文的处理

//1.设置请求路径
NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username.text,self.pwd.text];
//转码
urlStr= [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url=[NSURL URLWithString:urlStr];

//2.创建请求对象
NSURLRequest *request=[NSURLRequest requestWithURL:url];
阅读更多
个人分类: iOS
上一篇ios开发网络篇—HTTP协议
下一篇ios开发网络篇—数据安全
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭