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

调试查看:

服务器:

iOS开发网络篇—GET请求和POST请求相关推荐

  1. iOS开发网络篇—多线程断点下载

    iOS开发网络篇-多线程断点下载 说明:本文介绍多线程断点下载.项目中使用了苹果自带的类,实现了同时开启多条线程下载一个较大的文件.因为实现过程较为复杂,所以下面贴出完整的代码. 实现思路:下载开始, ...

  2. iOS开发网络篇—使用ASI框架进行文件下载

    iOS开发网络篇-使用ASI框架进行文件下载 说明:本文介绍iOS网络编程中经常用到的框架ASI,如何使用该框架进行文件的下载. 一.简单介绍 代码示例: 1 #import "YYView ...

  3. iOS开发网络篇—数据缓存

    iOS开发网络篇-数据缓存 一.关于同一个URL的多次请求 有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的. 上面的情况会造成以 ...

  4. 02.iOS开发网络篇—HTTP协议

    iOS开发网络篇-HTTP协议 说明:apache tomcat服务器必须占用8080端口 一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) ...

  5. iOS开发网络篇—搭建本地服务器

    iOS开发网络篇-搭建本地服务器 一.简单说明 说明:提前下载好相关软件,且安装目录最好安装在全英文路径下.如果路径有中文名,那么可能会出现一些莫名其妙的问题. 提示:提前准备好的软件 apache- ...

  6. iOS开发网络篇—NSURLConnection基本使用

    一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法.请求头.请求体.... ...

  7. iOS开发网络篇—NSURLConnection基本使用(一)

      一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法.请求头.请求体.. ...

  8. iOS开发网络篇—文件的上传

    说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代码. 主控制器的关键代码: Y ...

  9. iOS开发网络篇—HTTP协议

    说明:apache tomcat服务器必须占用8080端口 一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) 通过1个URL,能找到互联网上唯 ...

最新文章

  1. 用 go 写 WebAssembly入门
  2. python爬去学校_python爬取学校教务系统
  3. mybatis generator eclipse插件的安装
  4. android黑科技系列——爆破一款应用的签名验证问题
  5. python 换脸 github_人脸识别和换脸相关深度学习开源项目github汇总
  6. Eclipse提示The **** cannot be resolved. It is indirectly referenced from required .cl
  7. Codeforces Round #715 (Div. 1) B. Almost Sorted 找规律
  8. 算术的c语言程序设计,C 程序设计:变量与算术表达式
  9. Galaxy Fold可折叠屏手机何时能发售?三星自己也不知道
  10. tomcat部署php项目 css样式丢失_webpack 打包编译有些CSS样式莫名消失?
  11. 文章页调用栏目链接和栏目名称的方法
  12. C++ 需要返回值的函数却没有返回值的情况 单例模式
  13. mac系统的UTF-8 BOM编码
  14. intouch负值显示0_InTouch常见问题
  15. fstab文件详解,mount挂载参数
  16. 无线认证 服务器是怎么回事,无线wifi认证服务器参数设置方法是什么
  17. PDF文件中插入图片(图章)
  18. IDEA添加oracle数据库时不显示数据表
  19. HTML超链接的使用
  20. 贵州省那些大学有计算机专业,贵州大学的计算机专业全国排名第几?

热门文章

  1. [vue]饿了么的element-ui修改样式后不生效
  2. 干净架构在 Web 服务开发中的实践
  3. windows平台实现dll远程注入的简单例子
  4. GentleNet使用之详细图解[语法使用增强版]
  5. 使用python处理没有被Web用到的图片
  6. evernote使用推荐
  7. 机器学习与数据挖掘: 基础概念
  8. SQL Server -- LIKE模糊查询
  9. Ubuntu 12.10 安装 jdk-7u10-linux-x64.tar.gz
  10. MultiRow发现之旅(六)- 使用MultiRow开发票据应用(附源码)