异步POST请求和同步请求
来源:互联网 发布:sony签约网络经销商 编辑:程序博客网 时间:2024/05/18 02:47
假如请求路径是:http://192.168.1.102:8080/MJServer/login
请求参数: username:母鸡 pwd:123一.异步POST请求
要想在IOS中发送一个POST请求,那么首先了解一下POST请求细节:
1.跟GET不一样,POST的请求方式不是拼接在请求路径后面,而是以请求体的形式发送到服务器端。
2.POST请求需要发送两部分的数据到服务器端。
请求体内容: username=%E6%AF%8D%E9%B8%A1&pwd=123 //中文参数需要被编码 ”母鸡“被编译成 “%E6%AF%8D%E9%B8%A1” 请求头信息 : Content - Length 请求体长度 Content - Type 请求数据类型
POST请求代码实现:
//请求地址
NSString *urlString =@"http://192.168.1.102:8080/MJServer/login";
//初始化一个NSURL对象
NSURL *url = [NSURLURLWithString:urlString];
//初始化一个请求
NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url];
//设置请求方法,可以省略,缺省GET请求
request.HTTPMethod =@"POST";
//如果60秒过后服务器还没有响应,就算请求超时
request.timeoutInterval =60;
//拼接请求参数
NSString *params =@"username = 母鸡&pwd = 123";
//对字符串进行编码后转成NSData对象
NSData *data = [paramsdataUsingEncoding:NSUTF8StringEncoding];
//设置请求体
request.HTTPBody = data;
/*
//设置请求头信息-请求体长度
NSString *contentLength = [NSStringstringWithFormat:@"%i",data.length];
[requestsetValue:contentLength forHTTPHeaderField:@"Content-Length"];
//设置请求头信息-请求数据类型
[request setValue:@"application/x-www-form-urlencoded"forHTTPHeaderField:@"Content-Type"];
可以省略部分,只要设置请求体,系统在发送的时候会在根据请求体自动加上相应的请求头信息的。
*/
//初始化一个连接
NSURLConnection *conn = [NSURLConnectionconnectionWithRequest:requestdelegate:self];
//开始一个异步请求,缺省异步请求
[connstart];
除了start,NSURLConnection还提供2个静态方法帮助我们发送HTTP请求
1.异步请求
//请求地址
NSString *urlString =@"http://192.168.1.102:8080/MJServer/login?username = 123pwd = 123";
//初始化一个NSURL对象
NSURL *url = [NSURLURLWithString:urlString];
//初始化一个请求
NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url];
//初始化一个操作队列
NSOperationQueue *queue = [[[NSOperationQueuealloc]init]autorelease];
//发送一个异步请求
// 第一个参数是NSURLRequest对象,封装的是一个GET请求 第二个参数是一个操作队列NSOperationQueue,当服务器成功返回数据时,系统会将第三个参数中传入的Block放到这个操作队列中执行 第三个参数是一个Block,当服务器成功返回时会回调这个Block,Block中的NSData *data就是成功返回的数据。
[NSURLConnectionsendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response,NSData *data,NSError *error){
//解析成字符串数据
NSString *str = [[[NSStringalloc] initWithData:dataencoding:NSUTF8StringEncoding]autorelease];
NSLog(@"%@",str);
}];
2.同步请求
//请求地址
NSString *urlString =@"http://192.168.1.102:8080/MJServer/login?username = 123pwd = 123";
//初始化一个NSURL对象
NSURL *url = [NSURLURLWithString:urlString];
//初始化一个请求
NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url];
//初始化一个操作队列
NSOperationQueue *queue = [[[NSOperationQueuealloc]init]autorelease];
//发送一个同步请求
//这是一个阻塞式的方法,也就是说等服务器返回所有数据后,这个方法才会返回。返回值是一个NSData对象,存放着服务器返回所有数据
NSData *data = [NSURLConnectionsendSynchronousRequest:request returningResponse:nilerror:nil];
//解析成字符串数据
NSString *str = [[[NSStringalloc] initWithData:dataencoding:NSUTF8StringEncoding]autorelease];
NSLog(@"%@",str);
- 异步POST请求和同步请求
- 42.网络请求POST同步和异步
- Get请求和Post请求 同步下载和异步下载
- okhttp 第三方 网络数据请求 异步get请求 和异步post请求 同步请求
- 网络处理2-异步POST请求和同步请求
- 网络处理(2)-异步POST请求和同步请求
- 网络处理2-异步POST请求和同步请求
- OKHttp异步get,post请求和同步请求
- 异步请求和同步请求
- 同步请求和异步请求
- 同步请求和异步请求
- 同步请求和异步请求
- IOS之同步请求、异步请求、GET请求、POST请求
- IOS之同步请求、异步请求、GET请求、POST请求
- IOS之同步请求、异步请求、GET请求、POST请求
- IOS之同步请求、异步请求、GET请求、POST请求
- IOS之同步请求、异步请求、GET请求、POST请求
- IOS之同步请求、异步请求、GET请求、POST请求
- 【Transact-SQL】找出不包含字母、不包含汉字的数据
- flex 轮询通道配置的解释
- 文件按行逆序的简单实现
- 左右两部分 中间选择按钮(添加,删除)
- ImageLoader must be init with configuration before using 错误解决方法
- 异步POST请求和同步请求
- 5.12 QQ群里的第二次线下活动
- iOS 开发 高级:使用 宏定义macros (#,##,...,__VA_ARGS_)
- LCD和Camera各种分辨率
- unity3d学习笔记1
- 领悟
- IE FF(火狐) line-height兼容详解
- HBase源码分析之org.apache.hadoop.hbase.coprocessor包
- MySQL数据库存储引擎详解