Ada 编程/库/Web/AWS
外观
AWS,Ada Web 服务器,是一个完整的框架,用于开发基于 Web 的应用程序。AWS 的主要部分是嵌入式Web 服务器。这个小巧但功能强大的 Web 服务器可以嵌入到您的应用程序中,使其能够与标准 Web 浏览器进行通信。围绕这个 Web 服务器,开发了许多服务。
AWS 的著名 Hello World 演示,一个完整的 Web 服务器,它将为对localhost端口8080的每个请求显示“Hello world!”。
with
AWS.Default;with
AWS.Response;with
AWS.Server;with
AWS.Status;procedure
Hello_Worldis
WS : AWS.Server.HTTP;function
HW_CB (Request : AWS.Status.Data)return
AWS.Response.Datais
begin
return
AWS.Response.Build ("text/html", "Hello world !");end
HW_CB;begin
AWS.Server.Start (WS, "Hello World", Callback => HW_CB'Access);delay
60.0; AWS.Server.Shutdown (WS);end
Hello_World;
可以使用记录传递服务器的配置参数。还可以使用 AWS 上的内置过程来等待事件。
callbacks.adb
package
body
Callbacksis
function
HW_CB (Request : AWS.Status.Data)return
AWS.Response.Datais
begin
return
AWS.Response.Build ("text/html", "Hello world !");end
HW_CB;end
Callbacks;
callbacks.ads
with
AWS.Status;with
AWS.Response;package
Callbacksis
function
HW_CB (Request : AWS.Status.Data)return
AWS.Response.Data;end
Callbacks;
main.adb
with
AWS.Config.Set;with
AWS.Server;procedure
Mainis
use
AWS; Host :constant
String := "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);end
Main;
与bitcoind JSON-RPC 交互。
bitcoin.adb
with
AWS.Client;with
AWS.Headers;with
AWS.Headers.Set;with
AWS.Response;package
body
Bitcoinis
function
Get_Wallet_Inforeturn
AWS.Response.Datais
hdrs : AWS.Headers.List := AWS.Headers.Empty_List;begin
AWS.Headers.Set.Add(hdrs, "Content-Type", "text/plain");return
AWS.Client.Post(URL => "http://127.0.0.1:8332/", Data => "{""jsonrpc"": ""1.0"", ""id"":""test"", ""method"": ""getwalletinfo"", ""params"": []}", User => "bitcoinrpcUSERNAME", Pwd => "bitcoinrpcPASSWORD", Headers => hdrs);end
Get_Wallet_Info;end
Bitcoin;
通过打开 Bitcoin Core 并点击选项窗口上的对应按钮来创建 bitcoin.conf 文件。以下是示例配置文件。然后重新打开 bitcoin-qt 或启动 bitcoind 守护进程以启动服务器。bitcoin-cli 程序和测试网络可用于测试 RPC 命令。
bitcoin.conf
# Expose the RPC/JSON API server=1 rpcuser=USERNAME rpcpassword=PASSWORD