delphi 12 利用TNetHTTPClient 解决post https问题注意事项
在以前的版本中,如果需要向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;