2

このリクエストでRESTV2APIを介して自動送信URLをフラット化する場合

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

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

このエラーが発生しますが、URLはどのブラウザでも正常に機能し、既存のものにリダイレクトされます。

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

それで、私が何か間違ったことをしているのか、エラーメッセージが間違っているのか、それとも何か他のことをしているのでしょうか?

4

2 に答える 2

2

urlエンコーディングに問題がある可能性があります。これを機能させるには、最初に自動送信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エンコードとして1回だけ送信する場合、URLの一部が2回URLエンコードされることを意味します。また、JSON本文を使用してPOSTリクエストを行う場合は、それを機能させるためにを設定する必要がありContent-Typeますapplication/json

于 2012-01-23T11:00:26.663 に答える
0

リクエストのContent-typeヘッダーを設定するのを忘れました。「application/json」と言う必要があります。

于 2012-01-24T10:32:55.463 に答える