搜索查询参数在 BOX REST API 中被忽略

Search query parameter is ignored in BOX REST API

我正在尝试在 VS2013 中使用 restsharp 调用方法搜索。 Box 忽略了 subquery 字符串。我查阅了文档并使用 "PostMan" 测试了调用,它运行良好。

        string query = "asterisk";
        string subquery = "file_extensions=docx";

        var client = new RestClient(BASE_URL);
        client.Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(DEV_ACCESS_TOKEN, "Bearer");

        var request = new RestRequest(Method.GET);
        request.Resource = "search?query={query}&{subquery}";
        request.AddParameter("query", query, ParameterType.UrlSegment);
        request.AddParameter("subquery", subquery, ParameterType.UrlSegment);

        request.RequestFormat = DataFormat.Json;            

        var response = client.Execute(request);
        var content = response.Content;

此致

问题是您将整个 file_extensions=docx 字符串添加为 URL 参数。 RestSharp 正在对 = 进行 URL 编码,而 Box 会忽略格式错误的字符串。

GET /2.0/search?query=asterisk&file_extensions%3Ddocx

以下更改将产生正确的结果:

string subquery = "docx";
request.Resource = "search?query={query}&file_extensions={subquery}";
request.AddParameter("subquery", subquery, ParameterType.UrlSegment);

GET /2.0/search?query=asterisk&file_extensions=docx