Заголовки Ruby Gem для Rest-клиента

#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}