无法通过NSURLConnection sendSynchronousRequest POST特殊字符

时间:2015-01-11 03:07:55

标签: 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);
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];

它工作正常,但是当我发布一些像'&'这样的特殊字符时它不向服务器发送任何内容,它发布空白数据。

案例: 实际参数:“&&&” 发表:“”

有谁能告诉我如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我只需通过URL编码发布数据。对于编码,我使用了这个:

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

现在数据按我的意愿发布。 :)