获取没有C扩展/库的URL

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

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

  • 调用URL(例如http://myserver.com/blah?data=abcd
  • 返回响应(将是一个字符串 – 不是完整的HTML,只是某种标识符)

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

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

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

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

使用.NET,我创建了一个非命令行的非服务应用程序; 我可以像命令行应用程序一样调用的东西,但没有命令行窗口。 去做这个:

  • 创建一个新的命令行项目
  • 转到项目属性
  • 将类型更改为“Windows窗体应用程序”

当你运行你的项目时,它将像任何命令行项目(args等)一样运行,但不会出现任何窗口。

从那里,很容易发出异步HTTP请求并将响应存储在文本文件中。 这已经足够了。

你可以调出一个shell并执行curl(取决于你的环境和你想要的速度)

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

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