用的是系统自带的 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];
post 内容是这样的
key1=value1&key2=value2
你的data=&&&&服务端只能认出data=null
所有value都UrlEncode一下