我正在使用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)
。显然没有参数提交给服务器。
有人有想法吗?
答案 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>