当发送网络请求: 确定请求路径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.urlNSURL *url = [NSURL URLWithString:urlStr];//http://120.25.226.186:32812/login2?username=%E5%B0%8F%E7%A0%81%E5%93%A5&pwd=520it&type=JSONNSLog(@"url------%@",url);//2.urlrequestNSURLRequest *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.urlNSURL *url = [NSURL URLWithString:urlStr];//2.urlrequestNSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];//2.1 postrequest.HTTPMethod = @"POST";//2.2 bodyrequest.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请求中,请求路径中包含 中文字符. 因此需要转码.

不转码的控制台打印:

转码后的打印:

iOS开发网络篇 一一 请求路径(URL)中文转码问题相关推荐

  1. iOS开发网络篇 一一 文件上传

    下面使用两种方式来实现iOS网络中的文件上传. 注意: 文件上传要发送POST请求 使用 NSURLConnection 来实现 文件上传 使用 NSURLSession 来实现 文件上传 这两种方式 ...

  2. iOS开发网络篇 一一 AFN的基本使用

    一.AFN发送网络请求 知识点: 1. 使用AFN来发送网络请求: 需要创建会话管理者: AFHTTPSessionManager 对象 [AFHTTPSessionManager manager] ...

  3. iOS开发网络篇 一一 SDWebImage框架的基本使用

    SDWebImage相关资料链接: http://www.jianshu.com/p/be9a0a088feb SDWebImage的项目文件. SDWebImage框架中的一些内部细节: // 当发 ...

  4. iOS开发网络篇—多线程断点下载

    iOS开发网络篇-多线程断点下载 说明:本文介绍多线程断点下载.项目中使用了苹果自带的类,实现了同时开启多条线程下载一个较大的文件.因为实现过程较为复杂,所以下面贴出完整的代码. 实现思路:下载开始, ...

  5. iOS开发网络篇—使用ASI框架进行文件下载

    iOS开发网络篇-使用ASI框架进行文件下载 说明:本文介绍iOS网络编程中经常用到的框架ASI,如何使用该框架进行文件的下载. 一.简单介绍 代码示例: 1 #import "YYView ...

  6. 02.iOS开发网络篇—HTTP协议

    iOS开发网络篇-HTTP协议 说明:apache tomcat服务器必须占用8080端口 一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) ...

  7. iOS开发网络篇—数据缓存

    iOS开发网络篇-数据缓存 一.关于同一个URL的多次请求 有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的. 上面的情况会造成以 ...

  8. iOS开发网络篇—搭建本地服务器

    iOS开发网络篇-搭建本地服务器 一.简单说明 说明:提前下载好相关软件,且安装目录最好安装在全英文路径下.如果路径有中文名,那么可能会出现一些莫名其妙的问题. 提示:提前准备好的软件 apache- ...

  9. iOS开发网络篇—GET请求和POST请求

      一.GET请求和POST请求简单说明 创建GET请求 1 // 1.设置请求路径 2 NSString *urlStr=[NSString stringWithFormat:@"http ...

最新文章

  1. python写文件读文件-Python 实例:读写文件
  2. ES5原生api(2)
  3. JBoss Eclipse IDE
  4. java switch小程序,小程序自定义switch组件
  5. Linux / argv、environ 和 env 的联系
  6. 存储系统又慢又杂太难用?我们推荐这几本书帮你解决问题
  7. Eclipse配置国内镜像源
  8. 把javabean复制到另一个javabean 使用BeanUtils.copyProperties(a,b) 复制
  9. OpenCV-图像对比度
  10. java基本数据类型_资深大厂Java程序员,由浅入深Java学习资料,高清视频
  11. 20220103_数据库过程:异常业务量情况通报
  12. linux下解压bin文件怎么打开方式,安卓手机如何打开.bin文件?
  13. PCB设计敷铜时的天线效应
  14. dnf超时空漩涡副本路线流程图_dnf怎么打超时空漩涡 dnf超时空漩涡打法攻略
  15. hibernate主键生成策略native,assigned,uuid的区别
  16. 7种超轻量级的Linux发行版,希望能够帮助你找到适合自己的操作系统
  17. 鲁大师2022年Q3手机报告:OPPO ColorOS重回国产UI榜首
  18. CPAL脚本自动化测试 ———— Signal Wait系列函数及使用
  19. ✨英语学习|如何高效做英语阅读笔记
  20. 锁消除、锁粗化、偏向锁、自旋锁

热门文章

  1. python题库刷题训练选择题,大一python题库刷题训练
  2. 什么是OPhone?
  3. WebSocket长连接
  4. GPT-4,它来了!
  5. 2023最新仿《优优健康网》网站模板源码+帝国CMS7.5开发/功能强大
  6. IB数学的备战技巧有哪些?
  7. 修改Android app名字(Android Studio)
  8. 模块化开发,组件化开发定义及其区别
  9. 第九章、文件与文件系统的压缩与打包
  10. 个别学生计算机辅导计划,关于计算机教学计划四篇