我正试图使用rest客户机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'
有人能告诉我我做错了什么吗?已经到处搜索了一些说明如何设置页眉的文档,但似乎没有任何效果。
最佳答案
我试过这样的方法,效果很好:
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....
...