我正在嘗試編寫一個簡單的Ada(帶AWS)程序來將數據發佈到服務器。 curl命令工作如下,成功登錄後,在返回JSON有效響應:AWS.Client引發PROGRAM_ERROR:aws-client.adb:543敲定異常
curl -XPOST -d '{"type":"m.login.password", "user":"xxx", "password": "xxxxxxxxxx"}' "https://matrix.org/_matrix/client/r0/login"
我的Ada程序:
with Ada.Exceptions; use Ada.Exceptions;
with Ada.Text_Io; use Ada.Text_IO;
with AWS.Client;
with AWS.Communication.Client;
with AWS.MIME;
with AWS.Net;
with AWS.Response;
use AWS;
procedure Communicate is
Result : Response.Data;
Data : String := "{""type"":""m.login.password"", ""user"":""xxx"", ""password"": ""xxxxxxxxxx""}";
begin
Result := Client.Post
(URL => "https://matrix.org/_matrix/client/r0/login",
Data => Data,
Content_Type => AWS.MIME.Application_JSON) ;
Put_Line (Response.Message_Body (Result)) ;
end Communicate;
異常升高。我無法弄清楚這段代碼有什麼問題。
$ ./Communicate
raised PROGRAM_ERROR : aws-client.adb:543 finalize/adjust raised exception
測試代碼,你可以在http://matrix.org創建一個帳戶,並更換登錄憑證。
感謝。
阿德里安
您的AWS是否包含SSL支持? FWIW,我在AWS.NET.SSL中的'/users/bauhaus/src/aws/src/core/aws-client.adb:210'調用'initialize'處看到相同的消息和調試點(aws-net-ssl__dummy .adb:148),該軟件包聲稱「每次使用此接口都會引發Program_Error異常。」 – B98
如何檢查AWS是否包含SSL支持? –
事實上,也就是在安裝之後,我首先看看libaws所需的其他庫。例如,通過在Mac上運行'xcrun dyldinfo -dylibs'或在GNU/Linux上運行'ldd'。 (第二個列表是libgnutls。)否則,應該有一些包含該信息的安裝過程的日誌。 – B98