佚名通过本文主要向大家介绍了iOS开发,如何通过HTTPPost发送这个符号"&"到服务器?等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: iOS开发, 如何通过HTTP Post发送这个符号"&"到服务器?
描述:
解决方案1:
描述:
用的是系统自带的 NSURLRequest, 用post传输, 数据写在body里, 别的符号都没问题, 唯独 "&" 这个符号不行, 一旦包含这个符号服务器就不接受. 但是通过网页或者android输入&符号就没问题.
如果把&转化成escape string , 也就是说 & 转化成%26, 服务器端可以接受, 但显示的不是&, 而是%26,
所以请问, 怎么才能让正常发送&,别让服务器端正常接收和显示呢?
服务器是php的, 编码是utf8
具体如下
NSMutableURLRequest *postRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://xxx.com/server.php"]];
postRequest.HTTPMethod = @"POST";
[postRequest setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
NSString *bodyString = [NSString stringWithFormat:@"data=&&&&"];
postBody = [bodyString dataUsingEncoding:NSUTF8StringEncoding];
NSURLConnection *postConnect = [[NSURLConnection alloc]initWithRequest:postRequest delegate:self];
解决方案1:
试了多次终于搞定了, 原来是之前自己弄错了, 把&转化了两次, 所以服务器端总是无法识别.[myString stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)];
常用的这个方法不会转化&, 需要使用(NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)url, NULL, (CFStringRef)@"&", kCFStringEncodingUTF8))
这个方法, 但需要注意的是, 这两个方法用一个就行, 不要重复使用.
post 内容是这样的
key1=value1&key2=value2
你的data=&&&&服务端只能认出data=null
所有value都UrlEncode一下
您可能想查找下面的文章:
- ios现在主流的开发语言是什么啊
- IOS开发了一个新应用,使用相同BundleID替换了旧应用,想延用旧的coredata数据,无法找到momd
- ios开发教程iOS插件化开发
- iOS开发真机调试和安装咨询
- (swift)前端想学习一些ios开发技能,有想学前端的ios可以互相提升。
- iOS开发,为了让自己开发的程序易于维护,你们会在开发的时候采取哪些措施?
- IOS开发需要经常用真机调试吗
- QQ里打开pdf功能中,左上角有一个使用其他应用程序打开,请问iOS开发中,如何像QQ一样获取其他应用
- (swift)iOS开发单元测试,大家开发过程中常用吗,网上资料看了不少,但还是没明白怎么使用,怎么实战呢?
- iOS怎么删除项目中的多余分支