0

したがって、次のコマンドを実行すると、正常に動作します。

curl -X POST --compressed -H "Content-Type:application/json" \
  -H 'x-api-user: USER_ID' \
  -H 'x-api-key: API_TOKEN' \
  -d '{"text":"from the api!","type":"todo"}' \
  https://habitrpg.com/api/v1/user/task

HTTParty を動作させようとしましたが、圧縮された接続に関するドキュメントは基本的に私の理解レベルでは存在しません。NET/HTTP を試して接続を確立できましたが、API からデータが間違っているというエラーが何度も返されます (有効な型が指定されていないと表示されます)。私が使用しているコードは次のとおりです。

data = {:text => "from the app dog", :type => "todo"}
uri = URI.parse("https://habitrpg.com/api/v1/user/task")
http = Net::HTTP.new(uri.host, uri.port)
http.set_debug_output($stdout)
http.use_ssl = true
resp = http.post(uri.request_uri, data, {"x-api-user" => USER_ID, "x-api-key" => API_TOKEN})
resp.body

また、データに対して次のすべてを試しました。

data = {:text => "from the app dog", :type => "todo"}.to_json.to_s
data = "{\"text\":\"from the app dog\",\"type\":\"todo\"}"
data = "'" + "{\"text\":\"from the app dog\",\"type\":\"todo\"}" + "'"

そしておそらく、私がもはや識別できない他の3つまたは4つのもの. 誰か提案はありますか?私は完全に途方に暮れています。

4

1 に答える 1

0

コマンドcurlには Content-Type セットがあります。あなたが投稿したRubyコードにはそれがありません。

私は、アプリが与えられた JSON を検出して解析できないと推測しています。

于 2013-03-23T22:13:20.287 に答える