Bing Search API で画像検索をしようとしていますが、Unicode 文字ではうまく機能しません。
NSDictionary *bingParams = [NSDictionary dictionaryWithObjectsAndKeys:
@"'image'", @"Sources",
[NSString stringWithFormat:@"'%@'",[[searchBar text] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]], @"Query",
@"'Size:Medium'", @"ImageFilters",
@"json", @"$format",
@"50", @"$top",
nil];
NSLog(@"%@",[bingParams objectForKey:@"Query"]);
if (!_httpClient) {
_httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"https://api.datamarket.azure.com"]];
[_httpClient clearAuthorizationHeader];
[_httpClient setParameterEncoding:AFJSONParameterEncoding];
[_httpClient setAuthorizationHeaderWithUsername:BING_SEARCH_KEY password:BING_SEARCH_KEY];
}
NSMutableURLRequest *searchRequest = [_httpClient requestWithMethod:@"GET" path:@"/Bing/Search/v1/Composite" parameters:bingParams];
[searchRequest setCachePolicy:NSURLRequestReloadIgnoringCacheData];
[searchRequest setTimeoutInterval:30.0];
AFJSONRequestOperation *searchOperation = [AFJSONRequestOperation JSONRequestOperationWithRequest:searchRequest
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSLog(@"%@",JSON);
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON){
NSLog(@"%@",[error localizedDescription]);
}];
[_httpClient enqueueHTTPRequestOperation:searchOperation];
最初の NSLog は次を出力します。
`%E6%97%A5`
2 番目の NSLog は非常に長く出力されますが、強調したいキーと値のペアがあります
"__metadata" = {
type = ExpandableSearchResult;
uri = "https://api.datamarket.azure.com/Data.ashx/Bing/Search/v1/Composite?ImageFilters='Size:Medium'&Query='\U65e5'&Sources='image'&$skip=0&$top=1";
};
Query='\U65e5'
とは異なることに注意してください。'%E6%97%A5'
私は何が間違っているのだろうか?それとも、これは私の制御不能な検索 API の問題ですか?