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;

posted @ 2024-10-02 09:27  老魏的面条  阅读(315)  评论(0编辑  收藏  举报