iOS服务器数据请求"汉字编码"问题

下面记录一下数据请求问题:

1.不知道大家有木有遇到过,当数据请求的URL带有汉字的时候,请求数据肯定会报404错误,也就是参数或者是接口URL错误<虽然说404,500等错误一般都是服务器问题,可是......想说的是:大部分使我们请求参数或者URL问题哟!!! >

这时候你就要检查自己的请求参数和地址是不是有错哟!

2.当数据请求中带有汉字的时候,一般是要转成UTF8编码,才能进行数据请求的.

     NSString *searchStr1 = [searchStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

有些数据可能转一次就够了,有些....可就不一定了哈....

请往下看哟.....

3.安卓好像都是一次转码就好了...只是...iOS貌似不行的呢...嘻嘻!!!

总之我是试了很多次都不行,一直报404错误....经过多次尝试,总算是找到怎么解决这一问题了...

解决方法就是: 进行两次UTF8转码

看以下我的代码实现: 输入中文进行搜索请求数据.

 1 #pragma mark - UISearchDelegate
 2
 3 - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
 4
 5     self.searchBar.showsCancelButton = NO;
 6     [searchBar resignFirstResponder];
 7     //请求搜索数据
 8     NSString *searchStr = [searchBar.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
 9      NSString *searchStr1 = [searchStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
10     self.searchText = searchStr1;
11
12     // 注意要两次转码才成功!!!
13     [self requestStudentList:searchStr1];
14 }
时间: 2024-12-31 21:15:57

iOS服务器数据请求"汉字编码"问题的相关文章

ios 解决数据请求json解析字典后,由于java某些类库转换json字符串后出现键值为&lt;null&gt;无法保存在userDefault的问题

解决数据请求json解析字典后,由于java某些类库转换json字符串后出现键值为<null>无法保存在userDefault. 打印下得到的字典数据: “username”=<null> 此时如果将字典保存到userDefault中会报错 所以需要遍历字典将其替换 for (NSString*s in [Dict1 allKeys]) { if ([Dict1[s] isEqual:[NSNull null]]) { [Dict1 setObject:@""

iOS之数据请求NSURLConnection

NSString *lcsUrl = @"http://192.168.1.1:8080/lcsUrl"; //如果网址中有汉字,需要先转码 NSString *word = [NSString stringWithUTF8String:"汉字"];//注意此处到字符串要求传一个c的字符串,没有@ NSString *finaUrl = [NSString stringWithFormat:@"http://192.168.1.1:8080/lcsUrl=

iOS经验1:自己写的网络数据请求 第三方框架 断点续传 上传下载

镔哥哥做项目,一般的数据请求不管他多复杂,只要自己写好了请求,那么调用永远是那么的简单,那么我介绍一下 一:需要用到第三方框架AFNetworking,直接写在工程pch头文件里就行因为经常用到它,这在网上随便下载就行,最好用cocopod来下载,这样什么都有了,cocopod是什么,我就不说,博客上面有介绍. 开始啦: 1:自定义网络请求DataRequestManager类专门管理网络用的 朋友们以下代码就可以直接复制来用了 .h文件 //  DataRequestManager.h // 

关于纯xmlhttprequest请求服务器数据

今天我们的web技术已经相当的完善, 各种前端框架如jquery或者再深一点的工具APIcloud 的使用极大的方便了我们的开发工作. 今天我要分享一个纯javascript的方式来解决请求服务器数据或者异步请求数据来交互的方式. 因为我们的项目前端是ThunderAPP开发的android和IOS移动客户端, 使用完全封闭的APIcloud, 请求的形式都是AJAX api.ajax({ url : urlConstant.baseUrl + urlConstant.getUserMsgUrl

iOS开发——网络编程OC篇&amp;数据请求总结

数据请求总结 1 //**************************************GET 2 //同步 3 /* 4 //第一步,创建URL 5 NSURL * url = [[NSURL alloc]initWithString:@"http://e.hiphotos.baidu.com/image/w%3D1366%3Bcrop%3D0%2C0%2C1366%2C768/sign=66f9b9980ef431adbcd2473a7d0097cc/08f790529822720

android客户端请求不到服务器数据

============问题描述============ 报错代码行 String url = "http://192.168.1.121:9090/shunfengche/requestMes?pageSize=" + pageSize + "&currentPageNumber=" + currentPageNumber; HttpClient client = new DefaultHttpClient(); HttpGet get = new Htt

vue+webpack项目中使用dev-server搭建虚拟服务器,请求json文件数据,实现前后台分离开发

在项目开发中,前后台分离,做了假数据,项目使用vue2.0重构,后台也推到重来了,为了不耽误开发进程,我做了虚拟的数据请求,使用vue-cli脚手架搭建的项目文件中dev-server搭建虚拟api请求,访问自己mock的假数据虚拟请求后台的模式,具体做法如下 在build/dev-server.js文件中 在var app = express()这个实例的下面添加如下代码 // 本地json-server服务器搭建代码 // 引入数据库文件 var appData = require('../

ios NSURLRequest NSMutableURLRequest 数据请求

get 请求 #pragma mark - GET登录 - (void)getLogon { // 1. URL NSString *urlStr = [NSString stringWithFormat:@"http://localhost/login.php?username=%@&password=%@", self.userName.text, self.userPwd.text]; NSURL *url = [NSURL URLWithString:urlStr];

通过 httpclientget 方法 向服务器中请求数据

/*   * 通过 httpclientget 方法 向服务器中请求数据   */ public String getweb(String username, String userpass, String url) { String str = ""; StringBuffer sb = new StringBuffer(url); sb.append("?username="); sb.append(username); sb.append("&