Net :: HTTP.post_form()不向服务器

时间:2016-01-20 23:20:00

标签: php ruby-on-rails slim-lang

我正在使用Rails将一些表单数据发布到使用Slim框架运行php的Web服务。我的问题是Net::HTTP.post_form(uri, data)没有正确地将数据提交给服务器。

我的代码如下所示:

滑轨:

url = URI.parse("http://somewhere.com/login")
username = "my username"
password = "my password"

response = Net::HTTP.post_form(url, username: username, password: password)

更新 将呼叫更改为 根据Jon和taglia的建议,response = Net::HTTP.post_form(url, { 'username' => username, 'password' => password } )也不起作用。

我甚至尝试手动构建请求:

req = Net::HTTP::Post.new uri
req.body = "username=#{username}&password=#{password}"
response = Net::HTTP.start(uri.host, uri.port) {|http| http.request(req)}

结果与参数未正确发送到我的网络服务的结果相同。

超薄:

$app->post('/login', function($request, $response, $args) use ($app, $authenticator) {
  $user_params = $request->getQueryParams();
  var_dump($user_params);
  echo $authenticator->login($user_params);
}); // login

事实是Slim方面正在发挥作用。我使用Chrome的Advanced Rest Client App进行了测试。

使用Rails var_dump()会产生array(0)。显然没有参数提交给服务器。

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

我正在使用Net::HTTP.post_form(URI.parse('http://www.mailtester.com/testmail.php'), { 'q' => "santosh8887@gmailsdfsfd.com", 'submit' => 'Check address', 'action' => 'testmail.php', 'method' => "post" })尝试相同的方案 它给我的结果如#<Net::HTTPForbidden 403 Forbidden readbody=true>