无法通过REST API自动提交URL

时间:2012-01-22 14:47:26

标签: flattr

使用此请求通过REST V2 API对自动提交URL进行flattring

POST https://api.flattr.com/rest/v2/flattr

{"url":"https://flattr.com/submit/auto?user_id=myuserid&url=myurl"}

我收到此错误,但网址在任何浏览器中均正常工作,并重定向到现有的内容。

{
  "error_description" : "The requested thing(s) could not be found",
  "error_uri" : "http:\/\/developers.flattr.net\/api",
  "error" : "not_found"
}

所以要么我做错了,要么错误信息错了,或其他什么?

2 个答案:

答案 0 :(得分:2)

您可能遇到网址编码问题。为此,您需要首先对自动提交URL进行URL编码。

http://blog.flattr.net/2011/10/api-v2-beta-out-whats-changed/变为http%3A%2F%2Fblog.flattr.net%2F2011%2F10%2Fapi-v2-beta-out-whats-changed%2F

如果您想将其作为常规POST请求发送,则需要对整个自动提交URL进行URL编码。

http://flattr.com/submit/auto?url=http%3A%2F%2Fblog.flattr.net%2F2011%2F10%2Fapi-v2-beta-out-whats-changed%2F&user_id=flattr变为http%3A%2F%2Fflattr.com%2Fsubmit%2Fauto%3Furl%3Dhttp%253A%252F%252Fblog.flattr.net%252F2011%252F10%252Fapi-v2-beta-out-whats-changed%252F%26user_id%3Dflattr

如果您要使用JSON发送它,则无需对flattr自动提交URL进行URL编码。相反,你喜欢下面的例子。

{"url":"http://flattr.com/submit/auto?url=http%3A%2F%2Fblog.flattr.net%2F2011%2F10%2Fapi-v2-beta-out-whats-changed%2F&user_id=flattr"}

这意味着如果您执行常规POST请求,并且您将仅以一次JSON URL编码的方式发送数据,则URL的一部分将被URL编码两次。当您使用JSON正文进行POST请求时,您需要将Content-Type设置为application/json以使其正常工作。

答案 1 :(得分:0)

我忘了为请求设置Content-type标头。它需要说“application / json”。