自定HTTP Client客戶端
# Smart之自定HTTP Client客戶端
- 文件號:S-EQ-DEM-2030
# 1. 功能
採用HTTP協議,通過HTTP訪問數據伺服器的功能,該示例需與Smart之HTTP Server伺服器配合使用。在使用本範例前請先啟動HTTP Server伺服器的範例。
通過本範例學習,您可以掌握Smart智慧控制平臺訪問HTTP伺服器的功能。
# 2. 設計明細
開啟Smart智慧控制平臺,分別加入下插圖之控制元件。或者通過點選功能表欄[檔案]
-[打開專案]
選擇範例專案檔案來打開該範例。
①:TImage元件,控制元件名稱為Image1
。
②:TLabel元件,控制元件名稱為Label2
。
③:TLabel元件,控制元件名稱為Label1
。
④:TEdit元件,控制元件名稱為EditHost
。
⑤:TLabel元件,控制元件名稱為Label3
。
⑥:TEdit元件,控制元件名稱為EditPort
。
⑦:TImage元件,控制元件名稱為ImageSend
。
⑧:TMemo元件,控制元件名稱為Memo1
。
⑨:TLabel元件,控制元件名稱為Label4
。
⑩:TSwitchButton元件,控制元件名稱為SwitchButton1
。
(11):TMemo元件,控制元件名稱為Memo2
。
Main窗體屬性設定
BorderStyle
:設定邊界樣式=bsDialog
。Caption
:設定窗體顯示的標題=自定HTTP Client客戶端
。ClientHeight
:設定客戶區窗體的高度=438
。ClientWidth
:設定窗體客戶區的寬度=465
。
①Image1屬性設定
Align
:設定控制元件對齊方式=alClient
。Stretch
:設定圖片拉伸適應于控制元件。Picture
:設定圖片。點選Picture
屬性右側的[...]
按鈕,打開檔案上傳界面,點選[Load...]
從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]
載入圖片。
③Label2屬性設定
Caption
:設定標籤內容=地址:
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
④EditHost屬性設定
Text
:設定文字此處設定伺服器的地址,例如192.168.0.110
。Name
:設定控制元件名稱=EditHost
。Font
:設定字型。雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
⑤Label3屬性設定
Caption
:設定標籤內容=埠:
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
⑥EditPort屬性設定
Text
:設定文字此處設定伺服器的埠號,例如8806
。Name
:設定控制元件名稱=EditPort
。NumbersOnly
:設定只允許輸入數字=True
。Font
:設定字型。雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
⑦ImageSend屬性設定
Height
:設定控制元件高度=32
。Width
:設定控制元件寬度=32
。Stretch
:設定圖片拉伸=True
。Name
:設定控制元件名稱為ImageSend
。Picture
:設定圖片。點選Picture
屬性右側的[...]
按鈕,打開檔案上傳界面,點選[Load...]
從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]
載入圖片。
⑧Memo1屬性設定
Lines
:設定內容,雙擊該屬性或者點選右側的[...]
打開編輯器,輸入如下內容。
⑨Label4屬性設定
Caption
:設定標籤內容=日誌
。Font
:設定字型,雙擊該屬性或者點選屬性右側的[...]
以打開字型設定界面。
⑩SwitchButton1屬性設定
Height
:設定控制元件高度=56
。Width
:設定控制元件寬度=56
。Stretch
:設定圖片拉伸=True
。SwitchOff
:設定處於關閉狀態時顯示的圖片。點選屬性右側的[...]
按鈕,打開檔案上傳界面,點選[Load...]
從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]
載入圖片。
SwitchOn
:設定處於開啟狀態時顯示的圖片。點選屬性右側的[...]
按鈕,打開檔案上傳界面,點選[Load...]
從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]
載入圖片。
# 3. 程式設計
# 3.1. 程式初始化設定
該程式無初始化設定。
# 3.2. 事件設定
- ⑦ImageSend-OnClick事件
點選以發送內容。
procedure TMyHandler.ImageSendClick;
//點選以將SQL傳遞至HTTP伺服器中
var
v,vSQL:string;
begin
vSQL := FThis.Memo1.Lines.Text;
v:=paxfunc.NetHttpPost('http://' + FThis.EditHost.Text + ':' + FThis.EditPort.Text + '/opensql',vSQL,'text/plain','application/json',nil);
if v <> '' then
//返回的結果傳遞
FThis.Memo2.Lines.Add(paxfunc.urlDecode(v));
end;
2
3
4
5
6
7
8
9
10
11
- ⑩SwitchButton1-OnSwitch事件
點選開啟或關閉日誌框的顯示。
procedure TMyHandler.SwitchButton1Switch;
//顯示日誌
begin
FThis.Memo2.Visible := FThis.SwitchButton1.IsChecked;
end;
2
3
4
5
# 4. 運行結果
通過工具欄儲存,將程式儲存為 sdb 專案檔案。
使用滑鼠點選工具欄運行(Run),測試運行結果。在伺服器端設定埠號,點選啟動按鈕,下方顯示HTTP服務 已啟動
。在客戶端處填寫伺服器的地址埠號資訊,填寫查詢的SQL內容,點選右側的發送按鈕,下方日誌處會接收到查詢的結果集。服務端的數據表格也會顯示查詢的結果。