4

我正在尝试使用 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'

有人可以告诉我我做错了什么吗?已经搜索了一些指示如何设置标题的文档,但似乎没有任何效果。

4

1 回答 1

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.... 
...
于 2011-05-20T14:49:00.780 回答