您的位置:首页 > 理论基础 > 计算机网络

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

2017-03-23 14:59 344 查看
有些时候会遇到连接中带有中文样式的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];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  url nsstring 对象