问题描述
我正在使用 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;
如果您有任何指导,我将不胜感激:
- 如何操作标题,即添加和删除新的参数和值?
- 如何调用带有必须发送到服务器进行评估的标头和有效负载数据的 POST 请求。我尝试过的方法会导致错误。
- 如何读取/查看/评估 NetHttpClient HEADER 中已有的参数值?
在此先非常感谢您!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)