//如果请求地址中出现中文 需要进行url编码

本文介绍了在iOS开发中如何处理包含中文参数的网络请求。通过两种方式实现:一是使用原生 NSURLSession 进行 GET 请求并手动进行 URL 编码;二是利用 AFNetworking 库简化请求过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    //如果请求地址中出现中文需要进行url编码

     NSString *path = @"http://apis.juhe.cn/cook/query?key=80996127f667eac43832103850b3b13a&menu=";


     path = [path stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

    

    NSURL *url = [NSURL URLWithString:path];

    

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

    

    NSURLSession *session = [NSURLSessionsharedSession];

    NSURLSessionDataTask *task = [sessiondataTaskWithRequest:requestcompletionHandler:^(NSData *_Nullable data, NSURLResponse *_Nullable response,NSError * _Nullable error) {

        NSDictionary *dic = [NSJSONSerializationJSONObjectWithData:dataoptions:0error:nil];

        NSLog(@"%@",dic);

    }];

    [task resume];



//第二种方法:需要第三方。AFHTTPSessionManager)来自AFNetworking(需要的自己去下载哦)。。==========================================(文中有白色字体部分被隐藏,需要全部选中状态才能看全)

    NSString *path = @"http://apis.juhe.cn/cook/query";

    NSDictionary *paramsDic = @{@"key":@"80996127f667eac43832103850b3b13a",@"menu":@""};

    AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]init];

    [manager setResponseSerializer:[AFHTTPResponseSerializer serializer]];

    [manager GET:path parameters:paramsDic progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options: 0 error:nil];

        NSLog(@"%@",[NSThread currentThread]);

        NSLog(@"%@",dic);

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

        

    }];

    [manager POST:path parameters:paramsDic progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:nil];

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

        

    }];








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值