delphi 12 利用TNetHTTPClient 解決post https問題注意事項

老魏的面条發表於2024-10-02

在以前的版本中,如果需要向https 介面互動資料,需要openssl 的支援,特別時openssl 版本太多,往往需要除錯很長時間,

現在新版的Delphi XE8以上的版本,有了 TNetHttpClient, 可以簡單的是實現和https 介面的互動。

uses System.Net.URLClient,System.Net.HttpClient,System.Net.HttpClientComponent,

System.NetEncoding;

var HttpClient1: TNetHTTPClient;

my_url, tokenstr:string;

Response: IHTTPResponse;

begin

// 注意設定頭部訪問引數 , 是互動json 資料:

httpclient1.CustomHeaders['Content-Type']:='application/json; charset=UTF-8';

//如果對於攜帶密碼引數token訪問

tokenstr:='my token string';

httpclient1.CustomHeaders['Authorization']:='Bearer '+tokenstr; //注意bearer 後空格

//特別注意中文的處理,否則可能引起中文亂碼

sendstr:=' “{my send str”:“ 我要傳送的資料'‘}’;

my_url:='https://my_web_url...'; //要對接的網址

Response := HttpClient1.Post(my_url, TStringStream.Create(sendstr,TEncoding.UTF8));

//對於傳送的資料進行 編碼方式轉換約束,否則傳送接收中文接收異常,

//我在專案中發現接收中文亂碼,以為是接收解碼處理的問題,實際是傳送時中文亂碼,造成接收亂碼問題

//對於接收到的資料,如果包含中文字元,需要對中文解碼處理

showmessage(response.ContentAsString(TEncoding.UTF8));

end;

相關文章