Delphi:NetHttpClient - 如何为 XML 请求添加/编辑/删除 HEADER VALUES

问题描述

我正在使用 Delphi 10.2 将 XML 服务器集成到客户端应用程序 (VCL) 中。我无法使用 Indy HTTP,因为我使用的(外部第三方)服务器正在使用 SSL,而 Indy 在所需的 Opensll DLL 方面存在一些问题,我没有重新分发许可证。

因此,我现在被迫使用“新的”Delphi NetHttpClient 组件来尝试调用此服务器上的 API 函数。我似乎无法成功地使用参数填充请求 HEADER,也无法在我的单个 NetHttpClient 组件(在数据模块上)读取任何可能的现有 HEADER 值。

这是我迄今为止尝试过的:

procedure TfrmMain.CallAPI2;
var
  Params : TStringlist;
  URL,CertKey,CertSerial,CertSerialB64 : String;
  ReqStream : TStream;
begin
  URL := edtURL.Text;
  CertKey := edtCERT.Text;
  CertSerial := edtCertSerial.Text;
  CertSerialB64 := IdEncoderMIME1.Encode(CertSerial);

  ReqStream := TStream.Create;
  memRequest.Lines.SavetoStream(ReqStream);

  //REQUEST HEADER ParaMETERS
  Params := TSTringlist.Create;
  Params.Add('content-type=xml');
  Params.Add('cert-serial=' + CertSerialB64);
  Params.Add('client=webapi');

  //CALL ACTUAL API FUNTION
  memResponse.Text := DM1.REQ1.Post(URL,ReqStream,nil,TEncoding.UTF8,Params).ContentAsstring;
  Params.Free;
end;

如果您有任何指导,我将不胜感激:

  1. 如何操作标题,即添加删除新的参数和值?
  2. 如何调用带有必须发送到服务器进行评估的标头和有效负载数据的 POST 请求。我尝试过的方法会导致错误
  3. 如何读取/查看/评估 NetHttpClient HEADER 中已有的参数值?

在此先非常感谢您!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)