0

PHPスクリプトをRubyに変換するのに助けが必要です

PHP スクリプト:

$apiUrl = 'http://someurl/' . $_POST['type'];
unset($_POST['type']);

$fields = $_POST;
$fields['ip'] = $_SERVER['REMOTE_ADDR'];
$fieldsString = http_build_query($fields);

$ch = curl_init();

////set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Api-Key: somekey'
));
curl_setopt($ch,CURLOPT_URL, $apiUrl);
curl_setopt($ch,CURLOPT_POST, count($fieldsString));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fieldsString);
echo "<pre>";
var_dump($fields);
////execute post
$result = curl_exec($ch);
////close connection
curl_close($ch);
exit;

これまでに行ったルビーコード..

postparams = {
    'sent_from'         => 2,
    'id'                => @client.id,
    ...etc...
    'type'              => type,
    'ip'                => request.remote_ip
}

apiUrl = "http://someurl/#{type}"
fields = postparams

#$fieldsString = http_build_query($fields);
fieldsString = fields.to_query

#$ch = curl_init();
easy = Curl::Easy.new
#curl_setopt($ch,CURLOPT_HEADER, true);

# curl_setopt($ch, CURLOPT_HTTPHEADER, array(
#     'Api-Key: somekey'
# ));
easy.headers = ["Api-Key: somekey"]
#curl_setopt($ch,CURLOPT_URL, $apiUrl);
easy.url     = apiUrl
#curl_setopt($ch,CURLOPT_POST, count($fieldsString));

#curl_setopt($ch,CURLOPT_POSTFIELDS, $fieldsString);
res = easy.http_post(apiUrl, fieldsString)

#$result = curl_exec($ch);

render :text => res.inspect

質問は次のとおりです。

  • #curl_setopt($ch,CURLOPT_POST, count($fieldsString)); を翻訳するにはどうすればよいですか?
  • #curl_setopt($ch,CURLOPT_HEADER, true); を翻訳するにはどうすればよいですか?
  • easy.http_post は私が意図したことを実行しますか? 指定されたヘッダーオプションなどでパラメータを投稿しています...
  • その他の提案

ありがとうございました

4

1 に答える 1