zoukankan      html  css  js  c++  java
  • [IOS 同步GET和POST数据的模版]

    1.同步GET (联网检测)

    +(BOOL)checkConnect{
        // 初始化请求
        NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
        
        NSString *url=[NSString stringWithFormat:@"http://%@/zjut_java_ios/checkconnect.jsp",HOSTIP];
        // 设置URL
        [request setURL:[NSURL URLWithString:url]];
        // 设置HTTP方法
        //[request setHTTPMethod:@"GET"];
        // 发 送同步请求, 这里得returnData就是返回得数据了
        NSData *returnData = [NSURLConnection sendSynchronousRequest:request
                                                   returningResponse:nil error:nil];
        
        NSString *returnstr = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
        
        NSLog(@"检测联网jsp返回结果:%@",returnstr);
        
        if([returnstr isEqualToString:@"connect"]){
            NSLog(@"联网检测成功!");
            return true;
        }else{
            NSLog(@"联网检测失败!");
            return false;
        }
    
    }

    2.同步POST(注册新用户,用了MD5加密,不需要请自行忽略MD5函数)

    //添加新的用户
    +(BOOL)insertNewuser:(NSString *)email valueofpsw:(NSString *)psw{
        
        NSString *MD5psw=[self md5:psw];
    
        //post提交的参数,格式如下:
        //参数1名字=参数1数据&参数2名字=参数2数据&参数3名字=参数3数据&...
        NSString *post = [NSString stringWithFormat:@"email=%@&psw=%@",email,MD5psw];
        
        //将NSSrring格式的参数转换格式为NSData,POST提交必须用NSData数据。
        NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
        //计算POST提交数据的长度
        NSString *postLength = [NSString stringWithFormat:@"%lu",(unsigned long)[postData length]];
        //定义NSMutableURLRequest
        NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
        //设置提交目的url
        [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://%@/zjut_java_ios/insertNewuser.jsp",HOSTIP]]];
        //设置提交方式为 POST
        [request setHTTPMethod:@"POST"];
        //设置http-header:Content-Type
        //这里设置为 application/x-www-form-urlencoded ,如果设置为其它的,比如text/html;charset=utf-8,或者 text/html 等,都会出错。不知道什么原因。
        [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
        //设置http-header:Content-Length
        [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
        //设置需要post提交的内容
        [request setHTTPBody:postData];
        
        //定义
        NSHTTPURLResponse* urlResponse = nil;
        NSError *error = [[NSError alloc] init];
        //同步提交:POST提交并等待返回值(同步),返回值是NSData类型。
        NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
        //将NSData类型的返回值转换成NSString类型
        NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
        NSLog(@"注册jsp返回结果:%@",result);
        
        if([result isEqualToString:@"true"]){
            NSLog(@"注册成功");
            return true;
        }else{
            NSLog(@"注册失败");
            return false;
        }
    }
    
    +(NSString *)md5:(NSString *)str
    {
        const char *cStr = [str UTF8String];
        unsigned char result[16];
        CC_MD5(cStr, strlen(cStr), result); // This is the md5 call
        NSMutableString *Mstr = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
        
        for (int i=0; i<CC_MD5_DIGEST_LENGTH; i++) {
            [Mstr appendFormat:@"%02X",result[i]];
        }
        return Mstr;
    }

    ___________________________________________________
    专注iOS/前端开发,广泛涉猎多种平台和技术,欢迎交流
    可以在微博关注并@沈z伟
  • 相关阅读:
    课件的引子
    用nc做网络压力测试
    分布式计算学习笔记
    静态库 .a 转成共享库 .so
    nmon用法
    eclipse debug URLClassPath.getLoader(int) file
    sodu 命令场景分析
    俩孩随笔
    深度学习丨深度学习中GPU和显存分析
    语义分割丨DeepLab系列总结「v1、v2、v3、v3+」
  • 原文地址:https://www.cnblogs.com/rayshen/p/3961215.html
Copyright © 2011-2022 走看看