我有AFNetworking的Get请求,代码是:
NSString *url = /*url*/;
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html", nil];
[manager GET:urlMessage parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {...}
我必须在url中包含一些带空格的文本。但是,如果我这样做,我有一个错误“断言失败 - [AFHTTPRequestSerializer requestWithMethod:URLString:parameters:error:]” 显然,没有空格,我没有任何错误。 你知道如何在网址中包含空格而不出错吗? 谢谢。
答案 0 :(得分:11)
ulrString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
它应该解决问题。 迎接
答案 1 :(得分:2)
试试这个
[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]
您还可以查看这些内容 - AFPercentEscapedQueryStringKeyFromStringWithEncoding
和AFPercentEscapedQueryStringValueFromStringWithEncoding
。
- (NSString*) urlEnocodeString {
CFStringRef encodedCFString = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(__bridge CFStringRef) self,
CFSTR(" "),
NULL,
kCFStringEncodingUTF8);
return [[NSString alloc] initWithString:(__bridge_transfer NSString*) encodedCFString]; ;
}
答案 2 :(得分:0)
不建议在URL中使用空格。 无论如何,您必须对您的URL进行URL编码以替换空格
答案 3 :(得分:0)
对于iOS 9,这将起作用:
目标-C:
[query stringByAddingPercentEncodingWithAllowedCharacters:
[NSCharacterSet URLQueryAllowedCharacterSet]];