网络请求数据(同步POST,异步POST)

//同步POST

-(void)synPost{
    //获取URL接口,不含参数
    NSString *str = @"http://www.haninfo.cc:2060/Login/LoginData.asmx/Login";
    //转码---拼接方法,为避免参数是汉字时,打印结果不显示汉字
    str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *url = [NSURL URLWithString:str];
   
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:10];
   
    //post方式的参数封装
    NSString *dataStr = [NSString stringWithFormat:@"sLogin=%@&sVerifyCode=%@&sPadId=%@",@"yyj",@"",@""];
    //将参数列表转换成data
    NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
    //设置参数体
    [request setHTTPBody:data];
    //设置请求方式
    [request setHTTPMethod:@"POST"];
   
    //发送请求
    NSData *responData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    //解析
    id obj = [NSJSONSerialization JSONObjectWithData:responData options:NSJSONReadingAllowFragments error:nil];
    NSLog(@"%@",obj);

}

=====================================================

//异步POST

-(void)asynPOST{
    NSString *str = @"http://www.haninfo.cc:2060/Login/LoginData.asmx/Login";
   
    str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];//把汉字转换成字符串
    NSURL *url = [NSURL URLWithString:str];
   
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:10];
   
    //post方式的参数封装
    NSString *dataStr = [NSString stringWithFormat:@"sLogin=%@&sVerifyCode=%@&sPadId=%@",@"yyj",@"",@""];
    //将参数列表转换成data
    NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
    //设置参数体
    [request setHTTPBody:data];
    //设置请求方式
    [request setHTTPMethod:@"POST"];

//方法一:系统封装好的(不在需要代理方法)

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
        NSLog(@"%@",dic);
    }];

//方法二:需要代理方法

[NSURLConnection connectionWithRequest:request delegate:self];
}

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
    _muData = [NSMutableData data];
}

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
   
    [_muData appendData:data];
}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
//解析
}

-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
    //连接服务器失败
    NSLog(@"错误信息:%@",error);
}

时间: 2024-12-16 08:01:55

网络请求数据(同步POST,异步POST)的相关文章

android中网络请求数据,解析并添加到Listview中

今天我实现了网络请求数据,解析并将数据添加到Listview中.上个星期我有提到说要实现点击Listview中item实现不同的功能,还是没头绪.如有幸被阅读,希望指教一下.我用的是hTTPClient的post方法请求的数据.在实现请求之前,还有一个主activity跳转.代码如下: 请求activity代码: public class MachineInterface extends Activity { private ListView machineType; private Array

iOS网络编程之同步、异步、请求队列 2014-12-7

1. 同步意为着线程阻塞,在主线程中使用此方法会不响应任何用户事件.所以,在应用程序设计时,大多被用在专门的子线程增加用户体验,或用异步请求代替. - (IBAction)grabURL:(id)sender { NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"]; ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; [request star

网络请求数据 get请求方式   post请求 协议异步连接服务器 block异步连接服务器

网络请求三部 创建一个请求(添加接口,对接口进行解码,) 设定请求方式(将接口转为NSURL,设置请求[请求地址, 缓存策略, 超时时间],设置请求方式) 连接服务器([同步连接,异步连接]代理连接,block连接) #import "MainViewController.h" @interface MainViewController () @property (retain, nonatomic) IBOutlet UIImageView *ImageWiew; //get请求方法

UI 网络请求(同步GET,同步POST,异步GET,异步POST)具体操作

1 #import "MainViewController.h" 2 3 @interface MainViewController ()<NSURLConnectionDataDelegate> 4 5 @property (nonatomic, retain)UIImageView *imageView; 6 7 @property (nonatomic, retain)NSMutableData *data;// 可变数据 Data 用于拼接每次接受来的数据块 8 @

ios之NSURLConnection网络请求数据/GET与POST方法

目前可能只是单纯的贴上了一些demo的代码,但是这些代码都是请求数据应该是最基础的使用方法吧,在项目的实际开发中可能用到系统的会非常少,一般都是采用别人非常成熟的第三方开源库来实现数据请求,目前常用的第三方网络请求主要是以下几个:<h3 style="margin: 18px 0px; padding: 0px 0px 5px; border: 0px; outline: 0px; font-size: 22px; vertical-align: baseline; color: rgb(

HTTP请求中同步与异步有什么不同

普通的B/S模式就是同步,而AJAX技术就是异步,当然XMLHttpReques有同步的选项. 同步:提交请求->等待服务器处理->处理完毕返回.这个期间客户端浏览器不能干任何事. 异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕. 举个生动的例子吧: 同步就是你叫我去吃饭,我听到了就和你去吃饭:如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭. 异步就是你叫我,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭.豪享博娱乐

UWP开发:网络请求数据返回:Id =42 , Status = WaitingForActivation, Method = “{null}”, Result = “{Not yet computed}

今天突然遇到一个问题,UWP中网络请求返回:Id = 42, Status = WaitingForActivation, Method = "{null}", Result = "{Not yet computed}. 请求api是正确的,在浏览器内测试可以请求到数据,但是执行程序就是获取不了正确数据.郁闷了半天,突然才发现,由于我写的是异步网络请求的方法,而在调用时,忘记加 await async 关键字,导致没有异步调用.所以返回了Id = 42, Status = W

Swift 网络请求数据与解析

一: Swift 网络数据请求与处理最常用第三方 又有时间出来装天才了,还是在学swift,从中又发现一些问题,这两天上网找博客看问题弄的真的心都累.博客一篇写出来,好多就直接照抄,就没有实质性的把问题解决了,只是在发表的博客数量上 + 1 !!真心没意思.. 看看在Swift中是在怎样请求数据,解析数据加载图片这些的,也使我们最基本最常见的用法了,先说说这几个三方库: 第一个: Alamofire  (它的原作者就是AFNetworking的原作者,这个就不多说了,你要知道AFNetworki

网络请求数据(同步GET,异步GET)

////GET:将请求所需要传的参数,直接封装到URL中,缺点:1.不安全  2.url长度有限制,如果参数较多,会封装失败,导致无法请求 //POST:包含基础的url以及参数体,也就是说,参数跟url是分开的,比较安全且不用顾虑url的长度 //同步:当执行某个操作时,只有当其完全执行结束,才回去执行下面的操作,缺点:如果遇到耗时操作,会比较卡//异步:多个任务同时执行 #import "ViewController.h" #define BaseUrl @"http:/