我正在使用Java SDK连接到Box。我找到了根文件夹(这是一个小的dev实例,所以我不介意从那里搜索。)我执行搜索查询,我得到了结果。我的问题是搜索参数似乎不能始终如一地工作。
例如,此查询
Iterator resultSet = rootFolder.search(“query = NR_chewy_chic_swt_pot_app& file_extensions = jpg& content_type = name& type = file”)。iterator();
返回三个条目。
NR_chewy_chic_swt_pot_app.jpg
NR Chewy Chicken AD02.xls
PreInvoice_M197301-3644756_NR Chewy Treats SURP.pdf
我删除子字符串“& file_extensions = jpg”,因为它似乎没有做任何事情并保存/重新编译/运行,我得到相同的三个结果。
我将“& type = file”更改为“& type = folder”,我得到相同的三个结果。
我将“query = NR_chewy_chic_swt_pot_app”更改为“query = NR”并获得 NO 结果。尽管SO用户Peter(他似乎为Box工作)说部分字符串应该匹配1。
我尝试重新排列搜索参数的顺序无济于事。我错过了什么?
谢谢, Eric B.
答案 0 :(得分:0)
SDK中的高级搜索has yet to be implemented(因为它仍然处于测试阶段),但它将在未来几周内添加。
您的调用无效的原因是查询方法参数在API调用中作为"query" URL parameter发送。因此,您的查询字符串中的&符号正在转义。
如果您需要立即解决方法,可以使用BoxAPIRequest
and BoxAPIResponse
类来制作自定义搜索请求。例如:
BoxAPIConnection api = new BoxAPIConnection("token");
URL url = new URL("https://api.box.com/2.0/search?query=NR_chewy_chic_swt_pot_app&file_extensions=jpg&content_type=name&type=file")
BoxAPIRequest request = new BoxAPIRequest(api, url, "GET");
BoxJSONResponse response = (BoxJSONResponse) request.send();
String json = response.getJSON();
很抱歉这不清楚。我们将更新文档,使其更明确,query
表示查询字段,而不是URL查询字符串。