iOS开发网络篇 一一 请求路径(URL)中文转码问题
来源:互联网 发布:马云怎么赚淘宝的钱 编辑:程序博客网 时间:2024/06/16 14:24
当发送网络请求: 确定请求路径URL 时, 观察url中是否包含中文, 如果包含中文 需要将url中的中文进行转码操作.
注意:
上面这种情况 只针对于发送GET请求,因为GET请求的URL 包含用户名和密码. POST请求的用户名和密码 在请求体信息中. 在请求体信息中 包含中文也无须做 中文转码操作.
总结:
查看请求路径URL中是否包含中文, 如果包含中文 需要做中文转码.
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController#pragma mark ----------------------#pragma mark Events-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ [self get];}#pragma mark ----------------------#pragma mark Methods-(void)get{ NSString *urlStr = @"http://localhost:8080/MJServer/login?username=123&pwd=朝阳&method=get&type=JSON"; NSLog(@"转码前: %@",urlStr); //中文转码处理 urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSLog(@"转码后: %@",urlStr); //1.url NSURL *url = [NSURL URLWithString:urlStr]; //http://120.25.226.186:32812/login2?username=%E5%B0%8F%E7%A0%81%E5%93%A5&pwd=520it&type=JSON NSLog(@"url------%@",url); //2.urlrequest NSURLRequest *request = [NSURLRequest requestWithURL:url]; //3.connect [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) { //容错处理 if (connectionError) { NSLog(@"%@",connectionError); return ; } //4.解析 NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]); }]; }-(void)post{ //观察URL中是否有中文,如果有中文则需要转码 NSString *urlStr = @"http://localhost:8080/MJServer/login"; //username=小码哥&pwd=520it&type=JSON //1.url NSURL *url = [NSURL URLWithString:urlStr]; //2.urlrequest NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; //2.1 post request.HTTPMethod = @"POST"; //2.2 body request.HTTPBody = [@"username=123&pwd=朝阳&type=JSON" dataUsingEncoding:NSUTF8StringEncoding]; //3.connect [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) { //容错处理 if (connectionError) { NSLog(@"%@",connectionError); return ; } //4.解析 NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]); }]; }@end
注意观察: 上面发送GET请求中,请求路径中包含 中文字符. 因此需要转码.
不转码的控制台打印:
转码后的打印:
阅读全文
0 0
- iOS开发网络篇 一一 请求路径(URL)中文转码问题
- iOS开发网络篇 一一 NSURLConnection发送GET请求
- iOS开发网络篇 一一 NSURLConnection发送POST请求
- iOS开发网络篇 一一 NSURLSession发送GET、POST请求
- iOS开发网络篇 一一 HTTP协议
- iOS开发网络篇 一一 JSON解析
- iOS开发网络篇 一一 XML解析
- iOS开发网络篇 一一 登录案例
- iOS开发网络篇 一一 文件上传
- iOS 网络请求URL包含中文解决方法
- iOS开发网络篇 一一 网络的基本概念
- iOS开发网络篇 一一 SDWebImage框架的基本使用
- iOS开发网络篇 一一 NSURLConnection-文件下载
- iOS开发网络篇 一一 NSURLConnection-大文件断点下载
- iOS开发网络篇 一一 获取文件MIMEType的方式
- iOS开发网络篇 一一 NSURLConnection和Runloop(面试题)
- iOS开发网络篇 一一 NSURLSessionDownloadTask实现文件下载
- iOS开发网络篇 一一 NSURLSessionDownloadTask实现断点下载
- 线性表之单链表算法
- [瑜伽呼吸控制法].(印)斯瓦米·库瓦拉亚南达.扫描版(ED2000.COM).pdf
- 750. Number Of Corner Rectangles
- 析构顺序,const修饰对象,
- jquery操作select(取值,设置选中)
- iOS开发网络篇 一一 请求路径(URL)中文转码问题
- C语言实验——矩阵下三角元素之和
- 剖析Disruptor:为什么会这么快?(四)揭秘内存屏障
- CentOS下安装jdk及JAVA_HOME环境变量配置说明
- 148. Sort List
- ubuntu查看文件内文件个数与子文件夹个数
- Java设计模式之工厂方法模式
- 从头实现一个深度学习对话系统--Seq-to-Seq模型详解
- selenium模拟fireFox浏览器,爬取网页信息