我一直在使用AFNetworking一段时间,今天遇到了一个奇怪的问题。 我正在使用带有Google Places API的AFNetworking进行GET请求
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=21.283974,-157.836222&radius=1600&types=food|bar|cafe&key=myownapikeyhere
搜索API附近的地方使用type
限制来约束您可以从api获得的结果。 see document
你这样做的方法是让参数types=type1|type2|type3|etc
,type1,type2,type3是你想要用url获取的地方类型。
当我将网址粘贴到浏览器并请求它时,我设法获得了结果。但每当我将其与AFNetworking
一起使用时,'|'
符号似乎就会破坏它。它会引发unsupported url
错误。
这个问题有原因吗?任何建议都会有所帮助。
谢谢!
答案 0 :(得分:2)
您是否自己构建此网址?如果您使用AFNetworking GET
请求的参数,我相信它会正确地逃脱它。但是如果您自己构建URL,则不要让AFNetworking执行必要的百分比转义。
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *params = @{@"location" : @"21.283974,-157.836222",
@"radius" : @1600,
@"types" : @"food|bar|cafe",
@"key" : @"myownapikeyhere"};
[manager GET:@"https://maps.googleapis.com/maps/api/place/nearbysearch/json" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"responseObject = %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error = %@", error);
}];
答案 1 :(得分:2)
太简单了。只需将|
替换为%7C
NSString *string = @"https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=21.283974,-157.836222&radius=1600&types=food|bar|cafe&key=myownapikeyhere";
NSString *newString = [string stringByReplacingOccurrencesOfString:@"|" withString:@"%7C"];