2017-08-04 136 views
12

TDSRESTConnection aracılığıyla oluşturulan DS istemci proxy sınıfını kullanarak DataSnap sunucusuna bağlanıyorum. Bağlantı iyi çalışıyor ve sunucu yöntemlerini çağırabilirim. Şimdi bir proxy sunucu üzerinden bağlanmak istiyorum, bu yüzden TDSRESTConnection nesnesindeki özellikleri ayarlıyorum, ancak hiçbir şey vekil sunucudan yok sayılıyor, sanki özellikler göz ardı ediliyormuş gibi. şöyle Benim kodudur:Delphi Seattle DataSnap Client - Proxy sunucu ayarları çalışmıyor

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

Ben de denedim ayarı:

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

Hem hiçbir etkisi yoktur. Ancak bu kodun Delphi'nin önceki sürümünde çalıştığını biliyorum. XE6 olanı kullanıyordum. Problem XE10'a doğru hareket ediyor gibi görünüyor.

Bu konuda herhangi bir ışık tutabilir mi? Bir proxy kullanıcı adı belirtilmişse

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; 

kod yalnızca o ise proxy sunucusu ayarlarını uyguluyor:

+0

XE6 sürümü aslında "XE10" sürümü ile çalışamayacağınız gibi aynı makinede çalışıyor mu? Btw, XE10 yok, XE8 sonrası sürümler Seattle, Berlin ve Tokyo'dur - bunlardan hangileri * kullanıyorsunuz? – MartynA

+0

Merhaba, evet aynı bilgisayarda XE6'da iyi çalışıyor. Üzgünüm, kullandığım Delphi Seattle. –

+0

Özelliklerini değiştirdikten sonra bağlantıyı sıfırlamanız veya yeniden açmanız mı gerekiyor? – nil

cevap

0

Sorun TDSHTTP.PrepareRequest prosedüründe Datasnap.DSHTTPClient.pas biriminde bir hatadan kaynaklanıyor her zaman ayarları dikkate almamalı.