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\"}" + "'"

可能还有三四件其他我无法识别的事情。有没有人有什么建议?我完全不知所措。

4

1 回答 1

0

您的curl命令有一个 Content-Type 集。您发布的所有 Ruby 代码都没有。

我猜该应用程序无法检测和解析给它的 JSON。

于 2013-03-23T22:13:20.287 回答