我正在尝试使用rest-client gem发布内容,但出于某种原因,我不断收到内部服务器错误。我在Chrome上使用了Simple REST Client,除非我发送了以下标题,否则会出现同样的错误:
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'
有人可以告诉我我做错了什么吗?已搜索过一些指示如何设置标题的文档,但似乎没有任何效果。
答案 0 :(得分:5)
我尝试过这样的事情并且工作得很好:
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....
...