在以前的版本中,如果需要向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;