0

私はRPGツクールVXエースのコンテキスト内で作業しています。いくつかの Ruby 拡張機能があり、Ruby 1.8 ライブラリのサブセットが組み込まれています。コードを使用することはできませんが、Ruby 1.9.3 ソース ファイルなどの独自の .rb ファイルを追加することもできます。 C 拡張機能を備えています。.so ファイルが必要な場合、機能しません。「このアプリケーションは拡張機能/プラグインを読み込めません」というエラーが表示されます。

これを理解した上で、HTTP リクエストを行う何らかの方法が必要です。つまり、次のとおりです。

  • URL を呼び出します (例: http://myserver.com/blah?data=abcd
  • 応答を返します (これは文字列になります -- 完全な HTML ではなく、何らかの識別子にすぎません)

と を使ってみopen-uriましnet/httpた。両方とも、私が使用できないさまざまな問題があります。1つ(後者だと思います)はTcpSocket、Cで実装されており、「純粋な」Rubyではありません。もう 1 つは、ソケットに関連する未定義の定数に関するエラーです。

クラスも使用してみましSocketたが、同様のエラーが発生します。

TLDR: C 拡張機能なしで純粋な Rubyを使用して Ruby HTTP 呼び出しを行う方法はありますか? それが私が必要とするものです。

4

2 に答える 2

1

コードを書いてRubyから呼び出すことでこれを解決しました。簡単な。

.NET を使用して、非コマンド ライン、非サービス アプリケーションを作成しました。コマンドライン アプリのように呼び出すことができますが、コマンドライン ウィンドウはありません。これをする:

  • 新しいコマンド ライン プロジェクトを作成する
  • プロジェクトのプロパティに移動
  • タイプを「Windows フォーム アプリケーション」に変更します。

プロジェクトを実行すると、コマンドライン プロジェクト (args など) と同じように実行されますが、ウィンドウは表示されません。

そこから、非同期 HTTP 要求を作成し、応答をテキスト ファイルに保存するのは簡単でした。今のところこれで十分です。

于 2012-06-03T15:04:30.643 に答える
0

シェルを呼び出してcurlを実行できます(環境と必要な速度によって異なります)

result = `curl "http://myserver.com/blah?data=abcd" -s`

-s は curl をサイレントにします。それがDOSボックスの起動を停止するかどうかを確認してください。

于 2012-06-03T01:08:51.040 に答える