我想在某些特定日期使用其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
提前致谢。
答案 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;
(另请注意,您应该对using
和WebResponse
使用StreamReader
语句。)