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

@IBOutlet weakvar userName:UITextField!

@IBOutletweakvar userPwd:UITextField!

@IBOutletweakvar logonResult:UILabel!

/*  创建Get请求 */

func GetRequest()

{

//(1)设置请求路径

var urlStr:NSString =String(format:"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.userName.text!,self.userPwd.text!)

var url:NSURL =NSURL(string: urlStrasString)!

//(2) 创建请求对象

var request:NSURLRequest =NSURLRequest(URL: url)

//(3) 发送请求

NSURLConnection.sendAsynchronousRequest(request, queue:NSOperationQueue())
{ (res, data, error)in

//服务器返回:请求方式 = GET,返回数据格式
= JSON,用户名 = 123,密码 = 1233

let  str =NSString(data: data!, encoding:NSUTF8StringEncoding)

print(str)

}

}

/*  创建Post请求 */

func PostRequest()

{

//(1)设置请求路径

var url:NSURL =NSURL(string:"http://192.168.1.53:8080/MJServer/login")!//不需要传递参数

//(2) 创建请求对象

var request:NSMutableURLRequest =NSMutableURLRequest(URL:
url) //默认为get请求

request.timeoutInterval =5.0 //设置请求超时为5秒

request.HTTPMethod ="POST"  //设置请求方法

//设置请求体

var param:NSString =NSString(format:"username=%@&pwd=%@",self.userName.text!,self.userPwd.text!)

//把拼接后的字符串转换为data,设置请求体

request.HTTPBody = param.dataUsingEncoding(NSUTF8StringEncoding)

//(3) 发送请求

NSURLConnection.sendAsynchronousRequest(request, queue:NSOperationQueue())
{ (res, data, error)in

//服务器返回:请求方式 = POST,返回数据格式
= JSON,用户名 = 123,密码 = 123

let  str =NSString(data: data!, encoding:NSUTF8StringEncoding)

print(str)

}

}

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

三、使用

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

func HeadRequest()

{

//(1)设置请求路径

var url:NSURL =NSURL(string:"http://192.168.1.53:8080/MJServer/login")!//不需要传递参数

//(2) 创建请求对象

var request:NSMutableURLRequest =NSMutableURLRequest(URL:
url) //默认为get请求

request.timeoutInterval =5.0 //设置请求超时为5秒

request.HTTPMethod ="POST"  //设置请求方法

//设置请求体

var param:NSString =NSString(format:"username=%@&pwd=%@",self.userName.text!,self.userPwd.text!)

//把拼接后的字符串转换为data,设置请求体

request.HTTPBody = param.dataUsingEncoding(NSUTF8StringEncoding)

//客户端类型,只能写英文

request.setValue("iOS+Android", forHTTPHeaderField:"User-Agent")

//(3) 发送请求

NSURLConnection.sendAsynchronousRequest(request, queue:NSOperationQueue())
{ (res, data, error)in

//服务器返回:请求方式 = POST,返回数据格式
= JSON,用户名 = 123,密码 = 123

let  str =NSString(data: data!, encoding:NSUTF8StringEncoding)

print(str)

}

}

/* 2.加强对中文的处理 */

//问题:URL不允许写中文

//在GET请求中,相关代码段打断点以验证。

//在字符串的拼接参数中,用户名使用“张三”.

/*  创建Get请求 */

//(1)设置请求路径

var urlStr:NSString =String(format:"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.userName.text!,self.userPwd.text!)

// urlStr 的用户名使用“张三” ,转换成URL之后整个变成了空值。

//提示:URL里面不能包含中文。

//解决:进行转码

//用户名为中文时,进行Get请求要转码

func GetRequestTranscoding()

{

//(1)设置请求路径

var urlStr:NSString =String(format:"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.userName.text!,self.userPwd.text!)

//转码

urlStr = urlStr.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!

var url:NSURL =NSURL(string: urlStrasString)!

//创建请求对象

var request:NSURLRequest =NSURLRequest(URL: url)

//服务器返回:请求方式 = GET,返回数据格式
= JSON,用户名 =张三,密码 = hhh

}

swift开发网络篇—利用NSURLConnection GET请求和POST请求的更多相关文章

  1. swift开发网络篇—利用NSURLSession 发送GET和POST请求

    说明:本文示例代码发送的请求均为http请求,需要对info.plist文件进行配置.如何配置,请参考https://github.com/HanGangAndHanMeimei/iOS9Adapta ...

  2. swift开发网络篇—NSURLConnection基本使用

    iOS开发网络篇—NSURLConnection基本使用 一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据 ...

  3. iOS开发——网络篇——HTTP/NSURLConnection(请求、响应)、http响应状态码大全

    一.网络基础 1.基本概念> 为什么要学习网络编程在移动互联网时代,移动应用的特征有几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新, ...

  4. swift开发网络篇 - 网络基础

    GET & POST GET GET的语义是获取指定URL的资源 将数据按照variable=value的形式,添加到action所指向的URL后面,并且两者使用"?"连接 ...

  5. swift开发网络篇 - post 请求

    /** 所有网络请求,统一使用异步请求! 在今后的开发中,如果使用简单的get/head请求,可以用NSURLConnction异步方法 GET查/POST增/PUT改/DELETE删/HEAD GE ...

  6. swift开发网络篇 - 用户登录POST JSON and header

    版权声明:本文为博主原创文章,未经博主允许不得转载. import UIKit import Alamofire class ViewController: UIViewController { va ...

  7. 浅说Get请求和Post请求

    Web 上最常用的两种 Http 请求就是 Get 请求和 Post 请求了.我们在做 java web 开发时,也总会在 servlet 中通过 doGet 和 doPost 方法来处理请求:更经常 ...

  8. GET 请求和 POST 请求的区别和使用

    作为前端开发, HTTP 中的 POST 请求和 GET 请求是经常会用到的东西,有的人可能知道,但对其原理和如何使用并不特别清楚,那么今天来浅谈一下两者的区别与如何使用. GET请求和POST请求的 ...

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

    iOS开发网络篇—NSURLConnection基本使用 一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据 ...

随机推荐

  1. Impala与HBase整合

    不多说,直接上干货! Impala可以通过Hive外部表方式和HBase进行整合,步骤如下: • 步骤1:创建hbase 表,向表中添加数据 create 'test_info', 'info' pu ...

  2. javafx DropShadow

    public class EffectTest extends Application { DropShadow shadow = new DropShadow(); public static vo ...

  3. android 自己定义View之SubmitView

    转载请注明出处:王亟亟的大牛之路 近期看了一大堆的自己定义View多数都能够充当耗时操作的交互界面.再接再厉再传一个SubmitView.一个和可用于模仿提交等待与用户交互用的一个自己定义View 效 ...

  4. Android使用蓝牙连接adb调试App

    使用WiFi连接Android设备调试APP的教程非常多,可是项目中须要使用蓝牙进行通信.所以牵扯使用蓝牙调用adb. 1.   将电脑蓝牙与手机进行配对(控制面板->设备和打印机->加入 ...

  5. LeetCode 136 Single Number(仅仅出现一次的数字)

    翻译 给定一个整型数组,除了某个元素外其余元素均出现两次. 找出这个仅仅出现一次的元素. 备注: 你的算法应该是一个线性时间复杂度. 你能够不用额外空间来实现它吗? 原文 Given an array ...

  6. Codeforces Round #194 (Div. 2) 部分题解

    http://codeforces.com/contest/334 A题意:1-n^2 平均分成 n 份,每份n个数,且和相同 解法 : 构造矩阵1-n^2的矩阵即可 ][]; int main() ...

  7. NOI2018归程(Kruskal重构树)

    题目描述 本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定. 魔力之都可以抽象成一个 n 个节点.m 条边的无向连通图(节点的编号从 1 至 n). 我们依次用 l,a 描述一条边的长度. ...

  8. SpringCloud核心教程 | 第三篇:服务注册与发现 Eureka篇

    Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全 ...

  9. Xcode7 的两个小坑

    Xcode7 还在 beta.时不时崩一下什么的倒也是预料之中的事.没料到的是之前用着好好的,今天升完 El Capitan 之后,模拟器竟然不见了,设备倒是在 schema 栏右边里能看到.只是注明 ...

  10. 20款PHP版WebMail开源项目

    20款PHP版WebMail开源项目 如今互联网巨头提供的企业应用套件中邮件托管是必备服务,而且还始终秉承免费的优良光荣传统,最为让人熟识的恐怕非"瘟多死里屋管理中心"和" ...