Поиск Ada Lib для открытия файла через http - PullRequest
2 голосов
/ 25 января 2011

Я ищу библиотеку, которую можно включить в программу, чтобы открыть файл с заданным интернет-адресом. Так же, как http://foobar.com/foobar.txt.

Как

Ada.Text_IO.Open (File, Ada.Text_IO.In_File, "bla.txt");
но не ограничивается локальными файлами.

Ответы [ 2 ]

3 голосов
/ 25 января 2011

Что ж, вы не обязаны находить что-то с таким точным интерфейсом, так как Text_IO является стандартной библиотекой и не может быть легко расширен третьими лицами таким образом.

Если бы файловая система вашей платформы быладля поддержки HTTP, тогда он будет работать так, как вы хотите.Однако я не знаю ни одной платформы, которая бы работала таким образом.

В качестве общего решения вам, вероятно, понадобится AWS (Ada Web Server) .Человек может использовать это для реализации полноценного веб-сервера, если он хочет, но он также содержит средства клиента 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 голос
/ 02 мая 2011

Используя и внедрив несколько HTTP-клиентов, я бы посоветовал вам использовать установленный и выделенный клиент. Есть много тонкостей в стандарте HTTP, которые не обрабатываются наивными реализациями http://tools.ietf.org/html/rfc2616.

Подумайте об использовании привязок Ada для зрелой библиотеки, такой как libCURL; http://curl.haxx.se/libcurl/ada95/

...