#ruby-on-rails #ruby #http-headers #rest-client
#ruby-on-rails #ruby #http-заголовки #rest-клиент
Вопрос:
Я пытаюсь использовать rest-client gem для публикации чего-либо, но по какой-то причине я продолжаю получать внутреннюю ошибку сервера. Я использовал простой REST Client в Chrome и получал ту же ошибку, если не отправлял следующий заголовок:
Content-Type: application/x-www-form-urlencoded
Итак, я пытаюсь отправить этот заголовок с запросом post, но по какой-то причине он все еще не работает. Вот что я попробовал:
RestClient.post "server", :content_type=>"Content-Type: application/x-www-form-urlencoded",:name=> 'Test', :message_type=> 'Request', :version=> '2.0'
RestClient.post "server", {:content_type=> "Content-Type: application/x-www-form-urlencoded"},:name=> 'Test', :message_type=> 'Request', :version=> '2.0'
RestClient.post "server", {"Content-Type" =>"Content-Type: application/x-www-form-urlencoded"},:name=> 'Test', :message_type=> 'Request', :version=> '2.0'
RestClient.post "server", :header => {:content_type=>: "Content-Type: application/x-www-form-urlencoded"},:name=> 'Test', :message_type=> 'Request', :version=> '2.0'
Кто-нибудь может сказать мне, что я делаю не так? Я искал повсюду некоторые документы, в которых указано, как установить заголовок, но, похоже, ничего не работает.
Ответ №1:
Я пробовал что-то подобное и работал нормально:
options[:multipart] = true
# more options
resource = RestClient::Resource.new uri, options[:username], options[:password]
resource.post options do |response, request, result|
..............
end
Похоже, что multipart должен передаваться так же, как вы делаете с обычными параметрами. Вторые аргументы будут просто добавлены к заголовкам.
Надеюсь, это поможет
resource.post {params and request}, {custom headers here} do....
...
Комментарии:
1. Пример:
RestClient.post "http://#{udid}:#{SECRET_KEY}@#{API_BASE_PATH}/trip", {:from => from, :to => to}, {:user_agent => user_agent}