Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi:NetHttpClient-如何为XML请求添加/编辑/删除头值_Xml_Webapi_Delphi 10.2 Tokyo - Fatal编程技术网

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

Delphi:NetHttpClient-如何为XML请求添加/编辑/删除头值,xml,webapi,delphi-10.2-tokyo,Xml,Webapi,Delphi 10.2 Tokyo,我正在使用Delphi10.2将XML服务器集成到客户机应用程序(VCL)中。我不能使用Indy HTTP,因为我正在使用的(外部第三方)服务器正在使用SSL,Indy对所需的OpenSLL DLL有一些问题,我没有重新分发许可证 因此,我现在不得不使用“新的”DelphiNetHttpClient组件来尝试在该服务器上调用API函数。我似乎无法成功地用参数填充请求头,也无法读取单个NetHttpClient组件(在数据模块上)上任何可能存在的头值 这就是我迄今为止所尝试的: procedure

我正在使用Delphi10.2将XML服务器集成到客户机应用程序(VCL)中。我不能使用Indy HTTP,因为我正在使用的(外部第三方)服务器正在使用SSL,Indy对所需的OpenSLL DLL有一些问题,我没有重新分发许可证

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

这就是我迄今为止所尝试的:

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;
如能提供以下方面的指导,我将不胜感激:

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

  • 提前非常感谢

    如果您觉得必须使用NetHttpClient组件,您可以随意使用ICS(Internet组件套件)。您可以使用Delphi GetIT下载它!或从下载。ICS仅支持OpenSSL 1.1.1。