美文网首页ios网络
NSURLConnection的使用 - POST请求

NSURLConnection的使用 - POST请求

作者: fwlong | 来源:发表于2016-06-23 16:08 被阅读51次

    POST请求和GET请求相像
    0.首先得有一个NSURL,告诉请求路径。此时POST请求的请求参数不是放请求路径(放在请求体里)

    -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    {
        //1.请求路径
        NSURL * url = [NSURL URLWithString:@"http://120.25.226.186:32812/login"];
        //2.创建请求对象
        NSMutableURLRequest *requset = [NSMutableURLRequest requestWithURL:url];
        //告知是GET请求还是POST请求
        //更改请求方法,不写的话就是GET
        requset.HTTPMethod = @"POST";
        //设置请求体
        requset.HTTPBody = [@"username=520it&pwd=520it" dataUsingEncoding:NSUTF8StringEncoding];
        //设置超时(5秒后超时)只有用NSMutableURLRequest才行
        requset.timeoutInterval = 5;
        //设置请求头
    //    [requset setValue:@"iOS 9.0" forHTTPHeaderField:@"User-Agent"];
        //3.发送请求
        [NSURLConnection sendAsynchronousRequest:requset queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
            if (connectionError) {//比如请求超时
                NSLog(@"----请求失败");
            }else{
                NSLog(@"----%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
            }        
        }];
    }
    

    NSMutableURLRequest
    》设置请求超时等待时间(超过这个时间,请求失败)
    timeoutInterval/setTimeoutInterval
    》设置请求体
    HTTPBody/setHTTPBody
    》设置请求头
    setValue:value forHTTPHeaderField:

    创建GET和POST请求

    创建GET请求

    请求路径 -> 转成 url -> NSURLRequest
    默认就是GET请求

    NSURL * url = [NSURL URLWithString:@"http://120.25.226.186:32812/login?username=123&pwd=123"];
    NSURLRequest * request = [NSURLRequest requestWithURL:url];
    [NSURLConnection sendAsynchronousRequest:request queue:...];
    

    创建POST请求

    url -> requset ->改成POST ->请求体

    NSURL * url = [NSURL URLWithString:@"http://120.25.226.186:32812/login"];
     NSMutableURLRequest *requset = [NSMutableURLRequest requestWithURL:url];
     requset.HTTPMethod = @"POST";
    requset.HTTPBody = [@"username=520it&pwd=520it" dataUsingEncoding:NSUTF8StringEncoding];
    [NSURLConnection sendAsynchronousRequest:...];
    

    两者区别比较的大的地方就在请求参数

    相关文章

      网友评论

        本文标题:NSURLConnection的使用 - POST请求

        本文链接:https://www.haomeiwen.com/subject/fwwndttx.html