我尝试使用 AFNetworking 查询弹性搜索 (Searchbox.io) 的托管实例。不幸的是,我似乎无法让语法正常工作。例如,以下使用 curl 的语句可以正常工作,并且返回的正是我所期望的。
curl -XGET 'http://api.searchbox.io/api-key/<MYAPIKEY>/<MYINDEX/_search' -d '{"query" : {"query_string" : {"query" : "searchTerm"}}}'
我从 Searchbox.io 取回包含“searchTerm”的文档。极好的。但是,当我尝试在 AFNetworking 中实现相同功能时,Searchbox.io API 返回 500 错误,并指出“解析失败 [无法解析源 [ na ]]];嵌套” 下面是我的 AFHTTPClient 子类中的调用。
NSDictionary *searchDict = @{@"query":@{@"query_string":@{@"query":@"searchTerm"}}};
[self getPath:[NSString stringWithFormat:@"_search"]
parameters:searchDict
success:^(AFHTTPRequestOperation *operation, id responseObject) {
if ([responseObject isKindOfClass:[NSDictionary class]]) {
NSLog(@"Search Results: \n\n %@", responseObject);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Search Error: %@", error);
}
}];
仅供参考 - 子类 AFHTTPClient 在此调用之前使用以下语句设置。子类化的 AFHTTPClient 客户端工作正常,并且 baseURL 设置正确。
[self registerHTTPOperationClass:[AFJSONRequestOperation class]];
[self setDefaultHeader:@"Accept" value:@"application/json"];
在我的新手眼中,AFNetworking 处理 searchDict 的方式与 curl 语句中的文字不同。总而言之,在 AFNetworking 中实现的上述 curl 语句的等价物是什么?提前致谢