iOS开发中 get请求、post请求
来源:互联网 发布:福建师大网络教育专业 编辑:程序博客网 时间:2024/05/18 03:41
<span style="font-size:24px;color:#FF0000;">get请求</span>/** * 登录逻辑 */- (IBAction)login{ // 1.表单验证(输入验证) NSString *username = self.usernameField.text; if (username.length == 0) { // 没有输入用户名 [MBProgressHUD showError:@"请输入用户名"]; return; } NSString *pwd = self.pwdField.text; if (pwd.length == 0) { // 没有输入密码 [MBProgressHUD showError:@"请输入密码"]; return; } // 弹框 [MBProgressHUD showMessage:@"正在拼命登录中..."]; // 2.发送请求给服务器(带上帐号和密码) // GET请求:请求行\请求头 // 2.1.设置请求路径 NSString *urlStr = [NSString stringWithFormat:@"http://10.8.162.123:8080/MJServerTest/login?username=%@&pwd=%@", username, pwd]; // 转码 urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; // URL里面不能包含中文 NSURL *url = [NSURL URLWithString:urlStr]; // 2.2.创建请求对象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 默认就是GET请求 request.timeoutInterval = 5; // 设置请求超时 // 2.3.发送请求 [self sendAsync:request];}#pragma mark - NSURLConnectionDataDelegate 代理方法/** * 请求错误(失败)的时候调用(请求超时\断网\没有网, 一般指客户端错误) */- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{ }/** * 当接受到服务器的响应(连通了服务器)就会调用 */- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ }/** * 当接受到服务器的数据就会调用(可能会被调用多次, 每次调用只会传递部分数据) */- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{ }/** * 当服务器的数据接受完毕后就会调用 */- (void)connectionDidFinishLoading:(NSURLConnection *)connection{ }/** * <span style="font-size:18px;"><strong>发送异步请求的方式2:</strong></span> start方法, 代理 */- (void)sendAsync2:(NSURLRequest *)request{ NSURLConnection *conn = [NSURLConnection connectionWithRequest:request delegate:self]; [conn start]; // 异步执行}/** * <span style="font-size:18px;"><strong>发送异步请求的方式1</strong>:</span> 类方法, block */- (void)sendAsync:(NSURLRequest *)request{ NSOperationQueue *queue = [NSOperationQueue mainQueue]; [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { // 当请求结束的时候调用 (拿到了服务器的数据, 请求失败) // 隐藏HUD (刷新UI界面, 一定要放在主线程, 不能放在子线程) [MBProgressHUD hideHUD]; if (data) { // 请求成功 NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil]; NSString *error = dict[@"error"]; if (error) { // 登录失败 [MBProgressHUD showError:error]; } else { // 登录成功 NSString *success = dict[@"success"]; [MBProgressHUD showSuccess:success]; } } else { // 请求失败 [MBProgressHUD showError:@"网络繁忙, 请稍后再试"]; } }];}<span style="font-size:24px;color:#FF0000;">post请求 <span style="font-size:14px;color:#000000;"></span></span><pre name="code" class="objc"> <span style="font-size:12px;">// 2.发送请求给服务器 // POST请求:请求体 // 2.1.设置请求路径 NSURL *url = [NSURL URLWithString:@"http://xxxxx/login"]; // 2.2.创建请求对象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 默认就是GET请求 request.timeoutInterval = 5; // 设置请求超时 request.HTTPMethod = @"POST"; // 设置为POST请求 // 通过请求头告诉服务器客户端的类型 [request setValue:@"iosxxx" forHTTPHeaderField:@"User-Agent"]; // 设置请求体 NSString *param = [NSString stringWithFormat:@"username=%@&pwd=%@", username, pwd]; request.HTTPBody = [param dataUsingEncoding:NSUTF8StringEncoding]; // 2.3.发送请求 NSOperationQueue *queue = [NSOperationQueue mainQueue]; [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { // 当请求结束的时候调用 (拿到了服务器的数据, 请求失败) // 隐藏HUD (刷新UI界面, 一定要放在主线程, 不能放在子线程) [MBProgressHUD hideHUD]; if (data) { // 请求成功 NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil]; NSString *error = dict[@"error"]; if (error) { // 登录失败 [MBProgressHUD showError:error]; } else { // 登录成功 NSString *success = dict[@"success"]; [MBProgressHUD showSuccess:success]; } } else { // 请求失败 [MBProgressHUD showError:@"网络繁忙, 请稍后再试"]; } }];</span>
0 0
- iOS开发中 get请求、post请求
- 【iOS开发】 同步请求、异步请求、GET请求、POST请求
- iOS中同步请求 异步请求 get请求 post请求
- IOS-post请求、get请求
- iOS get post请求
- IOS Get、Post请求
- ios get post请求
- IOS Get、Post请求
- IOS开发 HTTP相关GET/POST请求
- iOS开发 GET、POST 请求方法
- iOS 中GET 和 POST 请求
- iOS中GET 和 POST 数据请求
- iOS开发网络篇—GET请求和POST请求
- iOS开发网络篇—GET请求和POST请求
- IOS开发—网络请求之GET/POST同步请求
- iOS开发网络篇—GET请求和POST请求
- iOS开发网络篇—GET请求和POST请求
- iOS开发网络—04GET请求和POST请求
- 两个项目之间的访问
- 【Foundation-26-1】#import <Foundation/NSDictionary.h>字典,旧
- Java HashMap 的实现原理详解
- 解决qcow2高版本兼容问题
- C#软件开发实例.私人订制自己的屏幕截图工具(十一)编辑工具栏的实现
- iOS开发中 get请求、post请求
- MFC框架程序剖析(3)
- 数据库事务隔离级别
- iOS SDK详解之视频播放(AVPlayer)附Demo
- c++调用lua堆栈一直增加,内存泄漏
- 第一章 错误处理
- 没事随便写写——matlab图像与矩阵的转换与存储为txt文件
- 虚拟机安装ubuntu后不支持16:9分辨率
- 基于WEB信息管理系统测试时应考虑的因素有哪些