不能通过 NSURLConnection sendSynchronousRequest POST 特殊字符
Can not POST special characters via NSURLConnection sendSynchronousRequest
这是我的代码:
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];
它工作正常,但是当我 post 一些特殊字符如 '&' 时,它没有向服务器发送任何内容,它 post 一个空白数据。
案例:
实际参数:“&&&”
发布:“”
谁能告诉我如何解决这个问题?
我只需要 post 通过 URL 编码的数据。对于编码,我使用了这个:
-(NSString *)encodeData : (NSString *)string {
return (NSString *)
CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef) string,
NULL,
(CFStringRef) @"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8));
}
现在数据已按我的意愿 post 编辑。 :)
这是我的代码:
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];
它工作正常,但是当我 post 一些特殊字符如 '&' 时,它没有向服务器发送任何内容,它 post 一个空白数据。
案例: 实际参数:“&&&” 发布:“”
谁能告诉我如何解决这个问题?
我只需要 post 通过 URL 编码的数据。对于编码,我使用了这个:
-(NSString *)encodeData : (NSString *)string {
return (NSString *)
CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef) string,
NULL,
(CFStringRef) @"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8));
}
现在数据已按我的意愿 post 编辑。 :)