用 net/http 库的 post 方法传值老是不成功,于是用 rails 写了个测试程序。
用 rails4,写了个表单,传值进去,然后在另一个页面显示。
表单:
<%= form_for :aa, url: "../example/index" do |f| %>
<p>
<%= f.label :title %><br>
<%= f.text_field :title %>
</p>
<p>
<%= f.label :text %><br>
<%= f.text_area :text %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
controller 处理
def handle
@params = params["aa"]
if @params['title'] == "1" and @params[:text] == "1"
render "handle"
else
render "index"
end
end
在网页上测试的好好的。
但是用 net/http 库,总会出错,如下 报错是 @params是 nil 值,undefined method `[]' for nil:NilClass。
但是确实又把参数读进去了,报错页面有如下信息。 Request Parameters: {"title"=>"1", "text"=>"2"}
我的代码:
require 'net/http'
require 'uri'
params = {:title=>'1',:text=>'2'}
uri = URI("http://localhost:3000/example/index")
req = Net::HTTP::Post.new(uri)
req.set_form_data(params)
res = Net::HTTP.start(uri.hostname, uri.port) do |http|
http.request(req)
end
File.open('a.html','w') do |f|
f.write res.body
end
请问各位大侠,这是什么问题啊