网络编程基础 -- NSURLConnection -- GET请求

LWTViewController.m

//
//  LWTViewController.m
//  网络编程练习 -- NSURLConnection -- get请求
//
//  Created by apple on 14-6-26.
//  Copyright (c) 2014年 lwt. All rights reserved.
//

#import "LWTViewController.h"
#import "MBProgressHUD+MJ.h"@interface LWTViewController () <NSURLConnectionDataDelegate>
@property (weak, nonatomic) IBOutlet UITextField *usernameField;@property (weak, nonatomic) IBOutlet UITextField *pwdField;@property (nonatomic, strong) NSMutableData *data;- (IBAction)loginBtnOnClick;@end@implementation LWTViewController- (void)viewDidLoad
{[super viewDidLoad];
}- (IBAction)loginBtnOnClick {NSString *username = self.usernameField.text;NSString *pwd = self.pwdField.text;if (username.length == 0) {[MBProgressHUD showError:@"请输入用户名"];return;}if (pwd.length == 0) {[MBProgressHUD showError:@"请输入密码"];return;}NSString *urlStr = [[NSString stringWithFormat:@"http://192.168.1.24:8080/MJServer/login?username=%@&pwd=%@", username, pwd] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];NSURL *url = [NSURL URLWithString:urlStr];NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];request.timeoutInterval = 5;//    [self dataSyncFromRequest:request];
//    [self dataAsyncFromRequest:request];
    [self delegateFromRequest:request];}/***  同步请求, 会阻塞线程*/
- (void)dataSyncFromRequest : (NSURLRequest *)request
{NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];NSLog(@"%d",data.length);
}/***  异步请求*/
- (void)dataAsyncFromRequest : (NSURLRequest *)request
{[MBProgressHUD showMessage:@"正在拼命加载中..."];[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {[MBProgressHUD hideHUD];if (connectionError) {[MBProgressHUD showError:@"网络繁忙,请稍后再试!!"];return ;}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];}}];
}- (void)delegateFromRequest : (NSURLRequest *)request
{NSURLConnection *conn = [NSURLConnection connectionWithRequest:request delegate:self];[conn start];[MBProgressHUD showMessage:@"正在拼命加载中..."];
}- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{NSLog(@"didFailWithError");[MBProgressHUD hideHUD];[MBProgressHUD showError:@"网络繁忙,请稍后再试"];
}- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{NSLog(@"didReceiveResponse");self.data = [NSMutableData data];
}- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{NSLog(@"didReceiveData");[self.data appendData:data];
}- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{NSLog(@"connectionDidFinishLoading");[MBProgressHUD hideHUD];NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:self.data options:NSJSONReadingMutableLeaves error:nil];NSString *error = dict[@"error"];if (error) {[MBProgressHUD showError:error];}else{NSString *success = dict[@"success"];[MBProgressHUD showSuccess:success];}
}@end

View Code

网络编程基础 -- NSURLConnection --POST请求

LWTViewController.m

//
//  LWTViewController.m
//  网络编程练习 -- NSURLConnection -- POST请求
//
//  Created by apple on 14-6-26.
//  Copyright (c) 2014年 lwt. All rights reserved.
//

#import "LWTViewController.h"
#import "MBProgressHUD+MJ.h"@interface LWTViewController ()
@property (weak, nonatomic) IBOutlet UITextField *usernameField;@property (weak, nonatomic) IBOutlet UITextField *pwdField;@property (nonatomic, strong) NSMutableData *data;- (IBAction)loginBtnOnClick;@end@implementation LWTViewController- (void)viewDidLoad
{[super viewDidLoad];
}- (IBAction)loginBtnOnClick
{NSString *username = self.usernameField.text;NSString *pwd = self.pwdField.text;if (username.length == 0) {[MBProgressHUD showError:@"请输入用户名"];return;}if (pwd.length == 0) {[MBProgressHUD showError:@"请输入密码"];return;}NSURL *url = [NSURL URLWithString:[@"http://192.168.1.24:8080/MJServer/login" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];request.timeoutInterval = 5;request.HTTPMethod = @"POST";[request setValue:@"Andriod and iOS" forHTTPHeaderField:@"User-Agent"];NSString *body = [NSString stringWithFormat:@"username=%@&pwd=%@", username, pwd];request.HTTPBody = [body dataUsingEncoding:NSUTF8StringEncoding];[MBProgressHUD showMessage:@"正在拼命加载中..."];[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {[MBProgressHUD hideHUD];if (connectionError) {[MBProgressHUD showError:@"网络繁忙, 请稍后重试!!"];return ;}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];}}];
}@end

View Code

转载于:https://www.cnblogs.com/wentianblog/p/3820760.html

网络编程练习 -- NSURLConnection -- get/post请求相关推荐

  1. iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载

    前言:iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载是在前篇iOS开发之网络编程--使用NSURLConnection实现大文件下载的基础上进行    断点续传的设置 ...

  2. 【面试】TCP、UDP、Socket、HTTP网络编程面试题

    文章目录 什么是网络编程 网络编程中两个主要的问题 网络协议是什么 为什么要对网络协议分层 计算机网络体系结构 1 TCP / UDP 1.1 什么是TCP/IP和UDP 1.2 TCP与UDP区别: ...

  3. TCP、UDP网络编程面试题

    TCP.UDP.Socket.HTTP网络编程面试题 什么是网络编程 网络编程的本质是多台计算机之间的数据交换.数据传递本身没有多大的难度,不就是把一个设备中的数据发送给其他设备,然后接受另外一个设备 ...

  4. python 网络编程是什么_什么是网络编程-Python 网络编程-嗨客网

    Python网络编程网络编程教程 网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机.数据传递本身没有多大的难度,不就是把一个设备中的数据发送给两外一个设备,然后接受另外一 ...

  5. 网络编程--TCP/IP协议

    参考:https://lijie.blog.csdn.net/article/details/105297532 https://blog.csdn.net/qq_20785973/article/d ...

  6. 超硬核!!!一篇文章搞定TCP、UDP、Socket、HTTP(详细网络编程内容+现实解释三次握手四次挥手+代码示例)【网络编程 1】

    TCP.UDP.Socket 一天面试的经验: 什么是网络编程 网络编程中两个主要的问题 网络协议是什么 为什么要对网络协议分层 计算机网络体系结构 1 TCP / UDP 1.1 什么是TCP/IP ...

  7. [Python]网络编程基础

    客户端/服务器网络编程 在服务器响应客户端请求之前,必须进行一些初步的设置流程来为之后的工作做准备.首先会创建一个通信端点,它能够使服务器监听请求.一旦一个通信端点已经建立,监听服务器就可以进入无限循 ...

  8. 网络编程基础知识详解

    什么是网络编程 网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机.数据传递本身没有多大的难度,不就是把一个设备中的数据发送给两外一个设备,然后接受另外一个设备反馈的数据. ...

  9. Objective-c 网络编程1 Web请求和响应

    2019独角兽企业重金招聘Python工程师标准>>> // // ViewController.m // 网络编程 // // Created by DC017 on 15/12/ ...

最新文章

  1. putty保存用户名和密码_使用PuTTY远程登录软件登录 Linux 实例
  2. 1 java开发工具IDEA的使用
  3. 干货-iOS、mac开源项目及库,以后我也会持续更新。
  4. 数值分析(3)-多项式插值: 牛顿插值法
  5. 拓端tecdat|R语言Fama French (FF) 三因子模型和CAPM多因素扩展模型分析股票市场投资组合风险/收益可视化
  6. 贾俊平统计学blog整理
  7. pwm波如何控制电机代码_如何通过PLC控制伺服电机?
  8. 什么是企业邮箱客户端授权码,如何使用?
  9. C语言程序设计笔记(浙大翁恺版) 第八周:数组
  10. vite:vue中引入图片报错require is not defined
  11. Visualizing Search Results with Solr /browse Velocity
  12. 5G学习笔记之系统消息
  13. A Survey of Shape Feature Extraction Techniques中文翻译
  14. android 5.0 刷机教程,一加手机怎么升级安卓5.0系统?一加手机刷Android 5.0教程
  15. centos8 内核升级
  16. ESP-8266 WIFI中继技术交流
  17. 数据结构考研复试、工作面试常见问题及答案(动画版)
  18. 程序员跳槽有一份好的简历,offer让你拿到手软
  19. 电脑报2013年第2期
  20. oracle触发器的自治事务

热门文章

  1. tmpfs加速并降低squid负载(一)
  2. 18、正则表达式中常用字符
  3. ubuntu10.4安装交叉编译器arm-none-linux-gnueabi-gcc
  4. 关于Linux系统下在使用close关闭串口设备时引起的内核崩溃问题解决方法
  5. python心理学实验程序_psychopy coder模式编写心理试验程序 字符程序和记录反应时...
  6. #绘制圆心_SolidWorks2018 绘制草图轮廓练习
  7. Codis安装与部署
  8. RMQ问题,加深对ST算法的理解(Sparse Table)
  9. php的cgi的设置,apache中配置php支持模块模式、cgi模式和fastcgi模式
  10. 【技术史】数据中台的前世今生