2017-08-04 15 views
12

生成されたDSクライアントプロキシクラスを使用してDataSnapサーバーにTDSRESTConnectionを使用して接続しています。接続が正常に動作し、私はサーバーメソッドを呼び出すことができます。プロキシサーバー経由で接続したいので、TDSRESTConnectionオブジェクトのプロパティを設定していますが、プロパティが無視されているかのように、プロキシサーバー経由で何も送信されていないことがわかります。次のように私のコードは次のとおりです。Delphi Seattle DataSnap Client - プロキシサーバー設定が機能しない

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に移行したようだ。

誰もがこれにどのような光を当てることができますか?プロキシユーザ名が指定されている場合

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; 

はコードだけそれに対し、プロキシサーバーの設定を適用している:

+0

XE6バージョンは、実際には同じマシンで動作しますが、「XE10」バージョンでは動作しません。 Btw、XE10はありません。XE8以降のバージョンはシアトル、ベルリン、東京です。あなたが使用しているものはどれですか? – MartynA

+0

こんにちは、はい、それは同じPC上のXE6で正常に動作します。申し訳ありませんが、それは私が使用しているDelphi Seattleです。 –

+0

プロパティを変更した後、接続をリセットまたは再オープンする必要がありますか? – nil

答えて

0

問題はTDSHTTP.PrepareRequest手順でDatasnap.DSHTTPClient.pasユニットのバグによるものです常に設定を適用する必要があります。

関連する問題