iOS 网络的请求

既然上篇文章说到了网络的判断,那这篇文章就来讲一下网络的请求吧,如有不对,敬请纠正

请求方式:GET、POST、SOAP

GET->构建不可变的请求对象

1.构建网络资源路径

NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

2.构建请求对象

NSURLRequest *request = [NSURLRequest requestWithURL:url];

3.1 构建连接对象(同步:会造成界面假死)

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

3.2 构建连接对象(异步:多线程)推荐用法

NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];

[conn start];

实现NSURLConnectionDataDelegate协议方法

已经接收到响应头

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

开始接收数据:可能调用多次

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

连接失败

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error

连接已完成

- (void)connectionDidFinishLoading:(NSURLConnection *)connection

POST->构建可变的请求对象

1 设置请求方式

[request setHTTPMethod:@"POST"];

2 设置请求内容

NSString *body = [NSString stringWithFormat:@"mobileCode=%@&userID=",self.txtPhone.text];

NSData *bodyData = [body dataUsingEncoding:NSUTF8StringEncoding];

[request setHTTPBody:bodyData];

3 设置请求头

NSString *bodyLen = [NSString stringWithFormat:@"%i",[bodyData length]];

[request addValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

[request addValue:bodyLen forHTTPHeaderField:@"Content-Length"];

构建连接对象同上,就不赘述来哈!

时间: 2024-10-11 02:14:32

iOS 网络的请求的相关文章

【读书笔记】iOS网络-优化请求性能

一,度量网络性能 1,网络带宽 用于描述无线网络性能的最常见度量指标就是带宽.在数字无线通信中,网络带宽可以描述为两个端点之间的通信通道每秒钟可以传输的位数.现代无线网络所能提供的理论带宽是很高的.不过请记住,运营商与网络设备提供商引用的带宽数字常常是该项技术的理论最大值,网络设备使用的实际带宽可能与这个最大值之间存在很大的偏差. 2,网络延迟. 度量网络性能的第2个因素是网络延迟,指的是网络包在两个端点间一次往返所需的时间.无线运营商很少会提到网络的延迟数据,不过延迟却会对应用的实际性能造成很

IOS ---网络异步请求

异步请求使用与同步和队列式异步请求相同的对象,只不过又增加了另一个对象,即NSURLConnectionDelegate: 上代码: #import "ViewController.h" NSInteger totalDownLoaded = 0; @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any ad

ios网络请求3840错误的问题

ios网络请求3840错误的问题 by 伍雪颖 Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn't be completed. (Cocoa error 3840.)" (Unterminated string around character 11080.) UserInfo=0x171065d00 {NSDebugDescription=Unterminated string around charac

ios网络学习------1get post异步请求

网络请求的步骤: get请求: #pragma mark - 这是私有方法,尽量不要再方法中直接使用属性,因为一般来说属性都是和界面关联的,我们可以通过参数的方式来使用属性 #pragma mark Get登录方法 - (void)loginWithGet:(NSString *)name pwd:(NSString *)pwd { //1确定地址NSURL NSString *urlString = [NSString stringWithFormat:@"www.baidu.com?user

iOS网络编程开发GET请求和POST请求

iOS网络编程开发GET请求和POST请求 一.GET请求和POST请求简单说明 创建GET请求 // 1.设置请求路径 NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username.text,self.pwd.text]; NSURL *url=[NSURL URLWithString:urlStr]

ios网络学习------2 用非代理方法实现异步post请求

#pragma mark - 这是私有方法,尽量不要再方法中直接使用属性,因为一般来说属性都是和界面关联的,我们可以通过参数的方式来使用属性 #pragma mark post登录方法 -(void)loginWithPostWithName:(NSString *)userName pwd:(NSString *)pwd { //1确定地址NSURL NSString *urlString = [NSString stringWithFormat:@"www.baidu.com"];

iOS网络: NSURLConnection进行异步请求

介绍:  iOS 的应用,一般是需要通过网络进行数据的交互的,这样你的应用就成为了联机的应用了. iOS SDK 允许我们向网络发送请求,并且能够很方便的通过 NSURLConnection 这个类 来获取和发送数据,我们可以通过 NSJSONSerialization 对 JSON 进行序列化和反序列化. XML 的解析则使用 NSXMLParser 类.可以通过 Twitter 框架进行 Twitter 进行连接. 一  通过NSURLConnection进行异步下载 1. NSURLCon

iOS经验1:自己写的网络数据请求 第三方框架 断点续传 上传下载

镔哥哥做项目,一般的数据请求不管他多复杂,只要自己写好了请求,那么调用永远是那么的简单,那么我介绍一下 一:需要用到第三方框架AFNetworking,直接写在工程pch头文件里就行因为经常用到它,这在网上随便下载就行,最好用cocopod来下载,这样什么都有了,cocopod是什么,我就不说,博客上面有介绍. 开始啦: 1:自定义网络请求DataRequestManager类专门管理网络用的 朋友们以下代码就可以直接复制来用了 .h文件 //  DataRequestManager.h // 

iOS网络编程同步GET方法请求编程

iOS SDK为HTTP请求提供了同步和异步请求两种不同的API,而且可以使用GET或POST等请求方法.我们先了解其中最为简单的同步GET方法请求. 首先实现查询业务,查询业务请求可以在主视图控制器MasterViewController类中实现,其中MasterViewController.h代码如下: Java代码   #import <UIKit/UIKit.h> #import “NSString+URLEncoding.h” #import “NSNumber+Message.h”