博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发网络篇—GET请求和POST请求(转)
阅读量:6954 次
发布时间:2019-06-27

本文共 2339 字,大约阅读时间需要 7 分钟。

一、GET请求和POST请求简单说明

创建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请求

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.发送请求

服务器:

二、比较

建议:提交用户的隐私数据一定要使用POST请求

相对POST请求而言,GET请求的所有参数都直接暴露在URL中,请求的URL一般会记录在服务器的访问日志中,而服务器的访问日志是黑客攻击的重点对象之一

用户的隐私数据如登录密码,银行账号等。

 

三、使用

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];

调试查看:

服务器:

如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/
你可能感兴趣的文章
Android BCM4330 蓝牙BT驱动调试记录
查看>>
mysql8.0.13安装
查看>>
[原创] Debian9上配置软件阵列
查看>>
远程控制数据库实用SQL重启功能
查看>>
svn备份一般采用三种方式
查看>>
回顾2012,展望2013
查看>>
原创《分享(Angular 和 Vue)按需加载的项目实践优化方案》
查看>>
实现一个单隐层神经网络
查看>>
关于Ajax
查看>>
多线程2
查看>>
二维数组转换
查看>>
利用WP7独立存储IsolatedStorageFile读写文件
查看>>
JavaScript基本概念
查看>>
servlet和Struts2的线程安全性对比
查看>>
Android应用开发SharedPreferences存储数据的使用方法
查看>>
[2615]传纸条 sdutOJ
查看>>
ueditor 添加微软雅黑字体 异常“从客户端中检测到有潜在危险的 request.form值”,解决...
查看>>
Android 截取当前界面
查看>>
解决 Oracle10g安装过程中"无法确定主机的IP地址时产生该异常错误"
查看>>
测试安排
查看>>