1

我想在某些特定日期使用其 API 获取 Freckle 的时间条目,但要么我得到 404 - Not Found,要么当我更改 URL 的格式时,它会生成 406 - Not Acceptable。当我想在不使用日期过滤器的情况下访问它们时,它工作正常。我为日期过滤器发送的 URI 是:

        string dFilter = @"\ -data'search[from]=2012-07-05'";
        string uri = @"https://apitest.letsfreckle.com/api/entries.xml"+dFilter;
        webRequest = (HttpWebRequest)WebRequest.Create(uri);
        webRequest.Headers.Add("X-FreckleToken:lx3gi6pxdjtjn57afp8c2bv1me7g89j");
        webRequest.Method = "GET";
        WebResponse webResponse = webRequest.GetResponse();
        StreamReader sr = new StreamReader(webResponse.GetResponseStream());
        responseXML = sr.ReadToEnd();

你能告诉我如何正确使用这个日期过滤器吗?API 的文档可以在以下位置找到: 文档

提前致谢。

4

1 回答 1

3

我认为问题在于您使用作为命令一部分的空格和命令行选项在 URL 中包含过滤器curl

该文档显示如下内容:

curl -G -H "[stuff]" https://apitest.letsfreckle.com/api/entries.xml \
  -d 'search[from]=2009-10-10'

\一个续行,-d用于传递请求的数据。引号只是为了将其全部保存在 shell 的一个参数中。-G说仍然使用请求GET,并将数据放在 URL 中......但这并不像你所做的那样。试试这个:

string filter = "search[from]=2012-07-05";
string uri = @"https://apitest.letsfreckle.com/api/entries.xml?" + filter;

(另请注意,您应该为 the和 the使用using声明。)WebResponseStreamReader

于 2012-07-07T06:41:03.047 回答