2017-08-04 31 views
12

काम नहीं कर रही है मैं TDSRESTConnection के माध्यम से जेनरेट किए गए डीएस क्लाइंट प्रॉक्सी क्लास का उपयोग कर डेटास्नाप सर्वर से कनेक्ट कर रहा हूं। कनेक्शन ठीक काम करता है और मैं सर्वर विधियों को कॉल कर सकता हूं। अब मैं प्रॉक्सी सर्वर से कनेक्ट करना चाहता हूं, इसलिए मैं 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; 

दोनों कोई असर नहीं। हालांकि मुझे पता है कि यह कोड डेल्फी के पिछले संस्करण में काम कर रहा है I का उपयोग कर रहा था जो XE6 है। एक्सई 10 की ओर बढ़ने में समस्या प्रतीत होती है।

क्या कोई इस पर कोई प्रकाश डाल सकता है?

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" संस्करण के साथ काम नहीं कर सकते हैं? बीटीडब्ल्यू, कोई XE10 नहीं है, बाद में XE8 संस्करण सिएटल, बर्लिन और टोक्यो हैं - इनमें से कौन सा * आप उपयोग कर रहे हैं? – MartynA

+0

हाय, हाँ यह एक ही पीसी पर XE6 में ठीक काम करता है। क्षमा करें, यह डेल्फी सिएटल मैं उपयोग कर रहा हूँ। –

+0

क्या आपको अपनी संपत्तियों को बदलने के बाद कनेक्शन को रीसेट या फिर से खोलने की आवश्यकता है? – nil

उत्तर

0

समस्या TDSHTTP.PrepareRequest प्रक्रिया में Datasnap.DSHTTPClient.pas इकाई में एक बग की वजह से है हमेशा ध्यान दिए बिना सेटिंग्स को लागू करना चाहिए।

संबंधित मुद्दे