Ada 编程/库/Web/AWS
外观
AWS,Ada Web 服务器,是一个完整的框架,用于开发基于 Web 的应用程序。AWS 的主要部分是嵌入式Web 服务器。这个小巧但功能强大的 Web 服务器可以嵌入到您的应用程序中,使其能够与标准 Web 浏览器进行通信。围绕这个 Web 服务器,开发了许多服务。
AWS 的著名 Hello World 演示,一个完整的 Web 服务器,它将为对localhost端口8080的每个请求显示“Hello world!”。
withAWS.Default;withAWS.Response;withAWS.Server;withAWS.Status;procedureHello_WorldisWS : AWS.Server.HTTP;functionHW_CB (Request : AWS.Status.Data)returnAWS.Response.DataisbeginreturnAWS.Response.Build ("text/html", "Hello world !");endHW_CB;beginAWS.Server.Start (WS, "Hello World", Callback => HW_CB'Access);delay60.0; AWS.Server.Shutdown (WS);endHello_World;
可以使用记录传递服务器的配置参数。还可以使用 AWS 上的内置过程来等待事件。
callbacks.adb
packagebodyCallbacksisfunctionHW_CB (Request : AWS.Status.Data)returnAWS.Response.DataisbeginreturnAWS.Response.Build ("text/html", "Hello world !");endHW_CB;endCallbacks;
callbacks.ads
withAWS.Status;withAWS.Response;packageCallbacksisfunctionHW_CB (Request : AWS.Status.Data)returnAWS.Response.Data;endCallbacks;
main.adb
withAWS.Config.Set;withAWS.Server;procedureMainisuseAWS; Host :constantString := "localhost"; Port :constant:= 8080; Web_Server : Server.HTTP; Web_Config : Config.Object;begin-- Setup Config.Set.Server_Host (Web_Config, Host); Config.Set.Server_Port (Web_Config, Port); -- Start the server Server.Start (Web_Server => Web_Server, Callback => Callbacks.HW_CB'Access, Config => Web_Config); -- Wait for the Q key Server.Wait (Server.Q_Key_Pressed); -- Stop the server Server.Shutdown (Web_Server);endMain;
与bitcoind JSON-RPC 交互。
bitcoin.adb
withAWS.Client;withAWS.Headers;withAWS.Headers.Set;withAWS.Response;packagebodyBitcoinisfunctionGet_Wallet_InforeturnAWS.Response.Dataishdrs : AWS.Headers.List := AWS.Headers.Empty_List;beginAWS.Headers.Set.Add(hdrs, "Content-Type", "text/plain");returnAWS.Client.Post(URL => "http://127.0.0.1:8332/", Data => "{""jsonrpc"": ""1.0"", ""id"":""test"", ""method"": ""getwalletinfo"", ""params"": []}", User => "bitcoinrpcUSERNAME", Pwd => "bitcoinrpcPASSWORD", Headers => hdrs);endGet_Wallet_Info;endBitcoin;
通过打开 Bitcoin Core 并点击选项窗口上的对应按钮来创建 bitcoin.conf 文件。以下是示例配置文件。然后重新打开 bitcoin-qt 或启动 bitcoind 守护进程以启动服务器。bitcoin-cli 程序和测试网络可用于测试 RPC 命令。
bitcoin.conf
# Expose the RPC/JSON API server=1 rpcuser=USERNAME rpcpassword=PASSWORD
