搜索Ada Lib以通过http打开文件

时间:2011-01-25 16:39:19

标签: ada

我正在搜索一个库,我可以将其包含在程序中以打开具有给定Internet地址的文件。就像http://foobar.com/foobar.txt

Ada.Text_IO.Open (File, Ada.Text_IO.In_File, "bla.txt");
但不限于本地文件。

2 个答案:

答案 0 :(得分:3)

好吧,你不会找到具有该确切界面的东西,因为Text_IO是一个标准库,并且不能以这种方式轻易地被第三方扩展。

如果您的平台的底层文件系统支持HTTP,那么它可以像您想要的那样工作。我不知道有任何平台可以这样工作。

您可能希望作为一般解决方案AWS (Ada Web Server)。一个人可以使用它来实现一个完整的Web服务器,如果他们想要,但它也包含HTTP客户端设施。 HTTP客户端将是您想要的(请参阅AWS.Client)。除了进行一次标准的API调用之外,您需要做的工作要多一些,但可能没有太多工作。

以下是一个示例,来自Rosetta Code

with Ada.Text_IO; 
use Ada.Text_IO; 
with AWS.Client;
with AWS.Response; 
procedure HTTP_Request is
begin
   Put_Line (AWS.Response.Message_Body (AWS.Client.Get (URL => "http://www.rosettacode.org")));
end HTTP_Request;

答案 1 :(得分:1)

使用并实现了多个HTTP客户端后,我建议您使用已建立的专用客户端。 HTTP标准存在许多复杂性,这些复杂性未由天真实现http://tools.ietf.org/html/rfc2616处理。

考虑将Ada Bindings用于像libCURL这样的成熟库; http://curl.haxx.se/libcurl/ada95/