从Freckle API中获取时间条目

时间:2012-07-07 06:34:26

标签: c# api

我想在某些特定日期使用其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的文档可在以下位置找到: Documentation

提前致谢。

1 个答案:

答案 0 :(得分:3)

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

文档显示如下内容:

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

\是一个行继续,-d用于传递请求的数据。引号只是将它全部保存在shell的一个参数中。 -G表示仍然使用GET请求,并将数据放入网址中...但它并不像您所做的那样。试试这个:

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

(另请注意,您应该对usingWebResponse使用StreamReader语句。)