gpt4 book ai didi

rest - Delphi Seattle DataSnap 客户端 - 代理服务器设置不起作用

转载 作者:行者123 更新时间:2023-12-03 14:39:11 30 4
gpt4 key购买 nike

我正在使用生成的 DS 客户端代理类通过 TDSRESTConnection 连接到 DataSnap 服务器。连接工作正常,我可以调用服务器方法。我现在想通过代理服务器进行连接,因此我在 TDSRESTConnection 对象上设置属性,但我可以看到没有通过代理服务器发送任何内容,就好像属性被忽略一样。我的代码如下:

var
myDS: TServerMethodsClient;
begin
DSRESTConnectionCfg.ProxyHost := 'localhost';
DSRESTConnectionCfg.ProxyPort := 8888;
myDS := TServerMethodsClient.Create(DSRESTConnectionCfg, False);
myDS.ServerMethodOne();
myDS.Free;
end;

我也尝试过设置:

  DSRESTConnectionCfg.HTTP.ProxyParams.ProxyServer := 'localhost';
DSRESTConnectionCfg.HTTP.ProxyParams.ProxyPort := 8888;

两者都没有效果。不过我知道这段代码可以在我使用的以前版本的 Delphi(XE6)中运行。问题似乎出在迁移到 XE10 时。

有人能解释一下吗?

最佳答案

问题是由于 TDSHTTP.PrepareRequest 过程中的 Datasnap.DSHTTPClient.pas 单元中的错误造成的:

procedure TDSHTTP.PrepareRequest(const ARequest: IHTTPRequest);
var
LIPRequest: TIPHTTPRequest;
I: Integer;
Lprox: TProxySettings;
begin
if FProxyConnectionInfo <> nil then
begin
Lprox := TIPProxyConnectionInfo(FProxyConnectionInfo).FProxySettings;
//if Lprox.UserName <> emptystr then // <-- Comment this line out
FHTTPClient.ProxySettings := TProxySettings.Create(Lprox.Host, Lprox.Port, Lprox.UserName, Lprox.password, Lprox.Scheme);
end;

如果指定了代理用户名,代码仅应用代理服务器设置,而无论如何它都应始终应用这些设置。

关于rest - Delphi Seattle DataSnap 客户端 - 代理服务器设置不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45509920/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com