我正在尝试为用户创建一个表单,使用他们的“手机刮刮卡”从我的Ruby on Rails网站上购买产品。
问题是该服务仅提供PHP的模块代码。所以我必须将它转换为Ruby才能进入我的网站。以下是我想要转换为Ruby的代码:
$post_field = 'xyz=123&abc=456';
$api_url = "https://www.nganluong.vn/mobile_card.api.post.v2.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$api_url);
curl_setopt($ch, CURLOPT_ENCODING , 'UTF-8');
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_field);
$result = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
我试图将它们转换为Ruby代码,但总是感到困惑。谁能帮助我将这些代码转换为可用的Ruby代码?提前谢谢!
到目前为止,这是我的愚蠢代码:
RestClient.post($api_url, $post_field, "Content-Type" => "application/x-www-form-urlencoded")
基本上我需要的是php curl代码的ruby版本。我是新手,不是经验丰富的程序员,所以请帮助。
答案 0 :(得分:1)
所有代码都在通过POST请求向指定的URL发送有效负载xyz=123&abc=456
。
您可以使用例如这个curb宝石:
response = Curl.post("https://www.nganluong.vn/mobile_card.api.post.v2.php", {:xyz => 123, :abc => 456})
result = response.body_str
status = response.status
答案 1 :(得分:1)
尝试这样的事情:
require 'rest-client'
require 'rack'
post_query = 'xyz=123&abc=456'
api_url = "https://www.nganluong.vn/mobile_card.api.post.v2.php"
query_hash = Rack::Utils.parse_nested_query(post_query)
begin
response = RestClient.post api_url, :params => query_hash
print response.code
print response.body
rescue Exception => e
print e.message
end