关于HTTP的URL中带有中文的转码方法

有些时候会遇到连接中带有中文样式的URL
以下是针对不同方法的解决方式

POST请求

- (void)post
{
    // 0.请求路径
    NSString *urlStr = @"http://www.csdn.net/login";
    NSURL *url = [NSURL URLWithString:urlStr];

    // 1.创建请求对象
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    request.HTTPMethod = @"POST";
    request.HTTPBody = [@"username=广东深圳&pwd=123" dataUsingEncoding:NSUTF8StringEncoding];

    // 2.发送请求
    [NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        // 3.解析服务器返回的数据(解析成字符串)
        NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@", string);
    }];
}

GET请求

- (void)get
{
    // 0.请求路径
    NSString *urlStr = @"http://www.csdn.net/login?username=广东深圳&pwd=123";
    // 将中文URL进行转码(字符串转字符串)
    urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *url = [NSURL URLWithString:urlStr];

    // 1.创建请求对象
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    // 2.发送请求
    [NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        // 3.解析服务器返回的数据(解析成字符串)
        NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@", string);
    }];
}

NSString ->NSData

NSData *data=[@"csdn.net"  dataUsingEncoding:NSUTF8StringEncoding];

NSData->NSString

NSString *string=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值