我正在尝试编写一个简单的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