delphi - Delphi 10.3 中使用 HTTPRIO 的基本身份验证
问题描述
HTTPRIO.HTTPWebNode.OnBeforePost
Delphi 10.3中的事件发生了变化。
在 Delphi 10.3 之前,事件处理程序是这样定义的,并且运行良好:
procedure TForm1.HTTPRIO1HTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp;
Data: Pointer);
var
auth: String;
begin
auth := 'Authorization: Basic ' + IdEncoderMIME1.EncodeString('user:password');
HttpAddRequestHeaders(Data, PChar(auth), Length(auth), HTTP_ADDREQ_FLAG_ADD);
end;
在 Delphi 10.3 中,Data
参数消失了,而是THTTPClient
给出了 a,我不知道如何用它实现基本身份验证:
procedure TForm1.HTTPRIO1HTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp;
Client: THTTPClient);
var
auth: String;
begin
auth := 'Authorization: Basic ' + IdEncoderMIME1.EncodeString('user:password');
???
end;
有什么提示吗?
解决方案
尝试使用请求的Username
和Password
属性,例如:
HTTPReqResp.UserName := 'user';
HTTPReqResp.Password := 'password';
如果这不起作用,请尝试使用客户端的CustomHeaders
属性,例如:
Client.CustomHeaders['Authorization'] := 'Basic ' + IdEncoderMIME1.EncodeString('user:password');
推荐阅读
- javascript - 访问对象列表中对象的方法
- javascript - 在 .net 核心 Angular 应用程序中使用外部 javascript
- python - Pandas to_excel 不写数据框,只写列/索引
- jquery - 动态创建选项卡后无法捕获选项卡单击事件
- django - Django/DRF 十进制字段过滤器不起作用
- html - 将 textarea 中的文本垂直对齐到普通文本
- python - 从另一个模块(Flask)重定向
- angularjs - 当管理员从管理面板中删除用户时,注销用户并删除会话
- random - 熵和真随机性的随机性程度
- javascript - 在没有承诺解决的情况下继续执行