2009-08-21 17 views
12

पर कस्टम एचटीपी हेडर जोड़ना मेरे पास एक पुराना एप्लिकेशन है जो क्लासिक वेब सेवा प्रॉक्सी का उपयोग जावा वेब सेवा से बातचीत करने के लिए करता है। कुछ समय पहले वेब सेवा होस्टर ने सेवा तक पहुंचने के लिए प्रत्येक अनुरोध के साथ एक कस्टम HTTP शीर्षलेख की आवश्यकता का निर्णय लेने का निर्णय लिया - अन्यथा अनुरोध पूरी तरह से बाहर फेंक दिए गए हैं (ऐसा लगता है जैसे यह राउटर आवश्यकता है)। भले ही मुझे अनुरोध में एक कस्टम HTTP शीर्षलेख इंजेक्ट करने की आवश्यकता क्यों न हो।वेब सेवा प्रॉक्सी

क्या कस्टम हेडर क्लाइंट को कस्टम हेडर जोड़ने जैसी चीजों को करने का कोई तरीका है?

+0

मैं इस समस्या में आए जब हमारे आईटी अपाचे mod_security जो स्वीकार लिए देख रहा था कार्यान्वित शीर्षलेख, और काम करने के लिए नीचे दिया गया शीर्ष वोट समाधान मिला। –

उत्तर

17

आपको एक अलग फ़ाइल में आंशिक वर्ग में प्रॉक्सी क्लास की GetWebRequest विधि को ओवरराइड करके ऐसा करने में सक्षम होना चाहिए। आधार वर्ग विधि बुला के बाद, आप को संशोधित करने में सक्षम होना चाहिए लौटे HttpWebRequest जैसे आप चाहें, तो विधि से इसे वापस:

public partial class MyServiceProxy { 
    protected override WebRequest GetWebRequest(Uri uri) { 
     HttpWebRequest request = (HttpWebRequest) base.GetWebRequest(uri); 
     // do what you will with request. 
     return request; 
    } 
} 
+1

युप जो चाल करता है। मैं मूल रूप से कोड के माध्यम से प्रॉक्सी उत्पन्न कर रहा हूं और मैं कक्षा उत्पन्न करने में सक्षम था और शीर्षलेख जोड़ने के लिए GetWebRequest में चेक किए गए हेडर संपत्ति को जोड़कर हेडर जोड़ने के लिए कुछ कोड इंजेक्ट करता था। बदसूरत, लेकिन यह बहुत अच्छा काम करता है! समाधान के लिए –

+0

धन्यवाद। मैं अपनी वेब सेवा क्लाइंट प्रोजेक्ट के साथ इस प्रक्रिया का उपयोग कैसे कर सकता हूं? – Jack

+0

@ जैक: यह वेब सेवा क्लाइंट प्रोजेक्ट है। इसके अलावा, यदि आपके पास विकल्प है तो आप डब्ल्यूसीएफ का उपयोग बंद कर सकते हैं। –

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