0

我在 RPG Maker VX Ace 的背景下工作。它有一些 Ruby 扩展,并且内置了 Ruby 1.8 库的子集。它还允许我添加自己的 .rb 文件——例如 Ruby 1.9.3 源文件——尽管我不能使用任何代码具有 C 扩展名。如果它需要 .so 文件,它将无法工作——我会收到“此应用程序无法加载扩展程序/插件”的错误消息。

了解了这一点后,我需要一些方法来发出 HTTP 请求。我的意思是:

我试过使用open-uriand net/http。他们都有不同的问题阻止我使用。一个(我认为是后者) requires TcpSocket,它是用 C 实现的,不是“纯”Ruby。另一个给我一个关于与套接字相关的未定义常量的错误。

我也尝试过使用这个Socket类,它给了我一个类似的错误。

TLDR:有没有什么方法可以用纯 Ruby 进行 Ruby HTTP 调用,没有 C 扩展?这就是我需要的。

4

2 回答 2

1

我通过编写一些代码并从 Ruby 调用它来解决这个问题。轻松活泼的。

Using .NET, I created a non-command-line, non-service application; something which I can invoke like a command-line app, but without the command-line window. To do this:

  • Create a new command-line project
  • Go to project properties
  • Change the type to "Windows Forms Application"

When you run your project, it'll run like any command-line project (args, etc.) but no windows will appear.

From there, it was easy to make an asynchronous HTTP request and store the response in a text file. This is sufficient for now.

于 2012-06-03T15:04:30.643 回答
0

您可以调用 shell 并执行 curl(取决于您的环境和您想要的速度)

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

-s 使 curl 保持沉默。看看这是否会阻止dos框出现。

于 2012-06-03T01:08:51.040 回答