IOS网络第二天 - 06-POST请求
************POST请求
#import "HMViewController.h"
#import "MBProgressHUD+MJ.h" @interface HMViewController ()
@property (weak, nonatomic) IBOutlet UITextField *username;
@property (weak, nonatomic) IBOutlet UITextField *pwd;
- (IBAction)login;
@end @implementation HMViewController - (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
} - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.view endEditing:YES];
} - (IBAction)login {
// 1.用户名
NSString *usernameText = self.username.text;
if (usernameText.length == ) {
[MBProgressHUD showError:@"请输入用户名"];
return;
} // 2.密码
NSString *pwdText = self.pwd.text;
if (pwdText.length == ) {
[MBProgressHUD showError:@"请输入密码"];
return;
} // 增加蒙板
[MBProgressHUD showMessage:@"正在拼命登录中...."]; // 3.发送用户名和密码给服务器(走HTTP协议)
// 创建一个URL : 请求路径
NSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/login"]; // 创建一个请求
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 5秒后算请求超时(默认60s超时)
request.timeoutInterval = ; request.HTTPMethod = @"POST";
// 设置请求体
NSString *param = [NSString stringWithFormat:@"username=%@&pwd=%@", usernameText, pwdText];
// NSString --> NSData
request.HTTPBody = [param dataUsingEncoding:NSUTF8StringEncoding]; // 设置请求头信息
[request setValue:@"iPhone 6" forHTTPHeaderField:@"User-Agent"]; // 发送一个同步请求(在主线程发送请求)
// queue :存放completionHandler这个任务
NSOperationQueue *queue = [NSOperationQueue mainQueue];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:
^(NSURLResponse *response, NSData *data, NSError *connectionError) {
// 隐藏蒙板
[MBProgressHUD hideHUD]; // NSHTTPURLResponse *resp = (NSHTTPURLResponse *)response;
// NSString *msg = [NSHTTPURLResponse localizedStringForStatusCode:resp.statusCode];
// NSLog(@"%d %@ %@", resp.statusCode, msg, resp.allHeaderFields); // 这个block会在请求完毕的时候自动调用
if (connectionError || data == nil) { // 一般请求超时就会来到这
[MBProgressHUD showError:@"请求失败"];
return;
} // 解析服务器返回的JSON数据
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
NSString *error = dict[@"error"];
if (error) {
// {"error":"用户名不存在"}
// {"error":"密码不正确"}
[MBProgressHUD showError:error];
} else {
// {"success":"登录成功"}
NSString *success = dict[@"success"];
[MBProgressHUD showSuccess:success];
}
}];
}
@end
IOS网络第二天 - 06-POST请求的更多相关文章
- IOS网络第二天 - 02-异步HTTP请求block回调 解析
************** #import "HMViewController.h" #import "MBProgressHUD+MJ.h" @interf ...
- IOS网络第二天 - 01-基本的HTTP请求
***************** #import "HMViewController.h" #import "MBProgressHUD+MJ.h" @int ...
- ios网络学习------1get post异步请求
网络请求的步骤: get请求: #pragma mark - 这是私有方法,尽量不要再方法中直接使用属性,由于一般来说属性都是和界面关联的,我们能够通过參数的方式来使用属性 #pragma mark ...
- IOS网络第二天 - 04-黑酷-GDataXML 解析
****** - (void)viewDidLoad { [super viewDidLoad]; /** 加载服务器最新的视频信息 */ // 1.创建URL NSURL *url = HMUrl( ...
- IOS网络第二天 - 03-JSON显示数据,调用本地视频播放,数据转模型
********HMVideosViewController.m #import "HMVideosViewController.h" #import "MBProgre ...
- iOS网络编程同步GET方法请求编程
iOS SDK为HTTP请求提供了同步和异步请求两种不同的API,而且可以使用GET或POST等请求方法.我们先了解其中最为简单的同步GET方法请求. 首先实现查询业务,查询业务请求可以在主视图控制器 ...
- IOS网络第二天 - 09-多值参数
*********** #import "HMViewController.h" #import "MBProgressHUD+MJ.h" @interface ...
- IOS网络第二天 - 07-发送JSON给服务器
*************** #import "HMViewController.h" #import "MBProgressHUD+MJ.h" @inter ...
- iOS网络编程-ASIHTTPRequest框架同步请求-备用
在ASIHTTPRequest框架中与HTTP请求相关的类有:ASIHTTPRequest和ASIFormDataRequest,其中最常用的是ASIHTTPRequest,ASIFormDataRe ...
随机推荐
- java基础 集合 ArrayList 增删改除
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- IE 8 下的 box-sizing 和 min-* 属性
在非 IE 浏览器中,默认情况下 width 属性指的是内容区域(content)的宽度. IE 6+ 中,如果浏览器以标准模型渲染,和非 IE 浏览器的表现是一致的:如果浏览器以怪癖模式渲染,则 w ...
- js求时间差
var date1=new Date(); //开始时间 alert("aa"); var date2=new Date(); //结束时间 var date3=date2 ...
- 初学者在ubuntu下安装使用git(上)
一 git的安装测试 在Ubuntu系统下的bash中输入git,如果提示没有安装的话,用命令 sudo apt-get install git 安装git,安装完成之后通过 git –versi ...
- MongoDB_C_Driver使用教程(2)高级连接
高级连接(Advanced Connection) 以下指南包含MongoDB配置的特定类型的信息. 简单的连接到独立服务器的示例,请参考MongoDB_C_Dirver使用教程. 要连接到启用身份验 ...
- Eclipse 的单步调试
1.设置断点在程序里面放置一个断点,也就是双击需要放置断点的程序左边的栏目上. 2.调试(1)点击"打开透视图"按钮,选择调试透视图,则打开调试透视图界面,然后先设置断点,按调试按 ...
- 各大安卓应用市场APP上传提交与收录
360 提交网址 应用宝 提交网址 百度 提交网址 91 提交网址 安卓 提交网址 PP助手 提交网址 小米 提交网址 华为 提交网址 OPPO 提交网址 魅族 提交网址 乐视 提交网址 豌豆荚 提交 ...
- vbox中虚拟ubuntu增加新的虚拟硬盘
vbox中虚拟ubuntu增加新的虚拟硬盘 在virtualbox中装好Ubuntu后,发现硬盘空间不够使用 了.以下是搜集整理的解决办法: 1. 添加新硬盘 设置 -> ...
- [jquery]模仿radio单项选择
今天写了个小功能,模仿radio单选, //单选收货地址 $(".wuliu-table-to").find(".called").click(function ...
- href使用 javascript:;与javascript:void(0)防跳到顶部
有时候我们在编写js过程中,需要触发事件而不需要返回值,那么就可能需要这样的写法 href=”#”,包含了一个位置信息.默认的锚是#top,也就是网页的上端,当连续快速点击此链接时会导致浏览器巨慢 ...