Ios 无法通过NSURLConnection sendSynchronousRequest发布特殊字符

Ios 无法通过NSURLConnection sendSynchronousRequest发布特殊字符,ios,objective-c,post,nsurlconnection,Ios,Objective C,Post,Nsurlconnection,这是我的代码: NSURL *s =[self getAbsoluteURL:url]; NSMutableURLRequest *requestURL = [NSMutableURLRequest requestWithURL:s cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:120.00]; [requestURL setHTTPMethod:@"POST"]; NSLog(@"%@",parameter); N

这是我的代码:

NSURL *s =[self getAbsoluteURL:url];
NSMutableURLRequest *requestURL = [NSMutableURLRequest requestWithURL:s cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:120.00];
[requestURL setHTTPMethod:@"POST"];
NSLog(@"%@",parameter);
NSError *error = [[NSError alloc] init];
if ([parameter isKindOfClass : [NSString class]]) {
   [requestURL setHTTPBody:[parameter dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]];
}

NSHTTPURLResponse *response;
NSError *error1;
NSData *apiData = [NSURLConnection sendSynchronousRequest:requestURL returningResponse:&response error:&error1];
它工作正常,但当我发布一些特殊字符,如“&”,它不会向服务器发送任何内容,而是发布一个空白数据

案例: 实际参数:&&& 张贴:


有谁能给我一个解决这个问题的线索吗?

我只需要通过URL编码发布数据。对于编码,我使用了以下方法:

-(NSString *)encodeData : (NSString *)string {
    return (NSString *)
    CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,
                                            (CFStringRef) string,
                                            NULL,
                                            (CFStringRef) @"!*'();:@&=+$,/?%#[]",
                                            kCFStringEncodingUTF8));
}

现在数据已按我的要求发布:

刚刚用iPhone模拟器测试了你的代码,效果很好。原始发布数据为&&&3字节,如参数中所指定。如果您的服务器端需要一个表单,它当然是空的,因为没有实际的数据发布,只有分隔符。请尝试用%26替换(&26)