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

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

    //2建立请求NSMutableURLRequest(post需要用这个)
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    //网络访问超时时间
    [request setTimeoutInterval:2.0f];
    //1)post请求方式,网络请求默认是get方法,所以如果我们用post请求,必须声明请求方式。
    [request setHTTPMethod:@"POST"];
    //2)post请求的数据体,post请求中数据体时,如果有中文,不需要转换。因为ataUsingEncoding方法已经实现了转码。
    NSString *bodyStr = [NSString stringWithFormat:@"username=%@&password=%@", userName, pwd];
    //将nstring转换成nsdata
    NSData *body = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];
    NSLog(@"body data %@", body);
    [request setHTTPBody:body];

//    //3建立并启动连接NSRULConnection
//    NSURLConnection *conn = [NSURLConnection connectionWithRequest:request delegate:self];
//    [conn start];  //启动连接,这是网络请求已经发生了。这是一个异步连接请求,,请求发送出去以后,就交由代理处理。

    //3不用代理的同步请求,
    NSURLResponse *response = nil;
    NSError *error = nil;
    //第二,三个参数是指针的指针,所有要用取址符,这个方法是同步方法。同步操作没有完成,后面的代码不会执行。
    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    //同步访问的数据的后续处理
    if (data != nil) {  //接受到数据,表示工作正常
        NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@", str);
    }else if(data == nil && error != nil)    //没有接受到数据,但是error为nil。。表示接受到空数据。
    {
        NSLog(@"接受到空数据");
    }else{
        NSLog(@"%@", error.localizedDescription);  //请求出错。
    }

//    //服务器通知准备,准备中转数据
//    self.serverData = [NSMutableData data];
}

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

时间: 2024-12-20 01:21:39

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

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

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

ios网络学习------8 xml格式数据的请求处理 用代码块封装

#pragma mark 加载xml - (void)loadXML { //获取网络数据. NSLog(@"load xml"); //从web服务器加载数据 NSString *str = @"http://www.baidu.com?format=xml"; //这里是乱写的 //1简历NSURL NSURL *url = [NSURL URLWithString:str]; //2建立NSURLRequest NSURLRequest *request =

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网络学习------7 xml格式数据的请求处理

用NSXMLParser解析XML文件过程: 1 创建NSXMLParser实例,并传入从服务器接收XML数据. 2 定义解析器代理 3 解析器解析. 4 通过解析代理方法完成XML数据的解析. #pragma mark 加载xml - (void)loadXML { //获取网络数据. NSLog(@"load xml"); //从web服务器加载数据 NSString *str = @"http://www.baidu.com?format=xml"; //这里

ios网络学习------6 json格式数据的请求处理

#import "MainViewController.h" #import "Video.h" #define kBaseURL @"http://192.168.3.252/~apple" @interface MainViewController ()<UITableViewDataSource, UITableViewDelegate> @property (strong, nonatomic) NSArray *dataLi

ios网络学习------11 原生API文件上传之断点续传思路

#import "MainViewController.h" @interface MainViewController () @end @implementation MainViewController - (void)viewDidLoad { [super viewDidLoad]; //下载文件 [self download]; } -(void)download { //1. NSURL NSURL *url = [NSURL URLWithString:@"ht

ios网络学习------9 播放网络视频

IOS提供了叫做MPMoviePlayerController  MPMoviePlayerViewController两个类,可以轻松用来实现视频播放.MPMoviePlayerViewController只能全屏播放视频. #import "MainViewController.h" #import <MediaPlayer/MediaPlayer.h> @interface MainViewController () //视频播放器 @property (strong

ios网络学习------4 UIWebView的加载本地数据的三种方式

UIWebView是IOS内置的浏览器,可以浏览网页,打开文档  html/htm  pdf   docx  txt等格式的文件.  safari浏览器就是通过UIWebView做的. 服务器将MIME的标识符等放入传送的数据中告诉浏览器使用那种插件读取相关文件. uiwebview加载各种本地文件(通过loadData方法): - (void)viewDidLoad { [super viewDidLoad]; [self setupUI]; NSString *path = [[NSBund

ios网络学习------5 json格式数据的请求处理

JSON正逐步取代XML,成为网络数据的通用格式. 从ios5开始,使用NSJSONSerialization对JSON解析.还有第三方库,比如SBJson, JSONKit, TouchJson等.从性能上说,NSJSONSerizlization最好,JSONKit其次,SBJson使用较为广泛. 加载json文件: #pragma mark 加载json - (void)loadJson { NSLog(@"load json"); //从web服务器加载数据 NSString