2013-03-23 2 views
0

Так что, если я выполнить следующую команду, она отлично работает:Проблемы с почтовыми данными NET/HTTP

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

И, вероятно, три или четыре вещи, которые я не могу идентифицировать больше. У кого-нибудь есть предложения? У меня полная потеря.

ответ

0

У вашей команды curl есть набор Content-Type. Ни один из опубликованных вами Ruby-кода не имеет.

Я предполагаю, что приложение не может обнаружить и разобрать предоставленный ему JSON.

+0

Вы не представляете, насколько глупо это заставляет меня чувствовать. Я серьезно потратил 30 минут на эту цепочку. –

Смежные вопросы