2009-02-18 7 views
8

मेरे पास कई वेब विधियों के साथ वेब सेवाओं का एक पूरा समूह है। इन सेवाओं के उपभोक्ता विविध और कई हैं। मैं इन वैकल्पिक तरीकों में से प्रत्येक को अतिरिक्त वैकल्पिक पैरामीटर (इंट 64 या इंट 32) के साथ जोड़ना चाहता हूं लेकिन इस अतिरिक्त (वैकल्पिक पैरामीटर) के साथ नए तरीके जोड़ना बहुत काम है और ग्राहकों को नए तरीकों का उपयोग करने के लिए और अधिक समय लेने वाला होगा ।क्या मैं HTTP शीर्षलेख में कस्टम डेटा पास कर सकता हूं?

तो मैं सोच रहा था कि क्या मैं उन ग्राहकों को अनुमति दे सकता हूं जो नई सुविधा का लाभ उठाना चाहते हैं, जो कि यह प्राइम प्रदान करता है, इस int को HTTP शीर्षलेख या किसी अन्य तरीके से पास कर सकता है।

तो पहला सवाल है कि क्या मैं HTTP शीर्षलेख में एक int पास कर सकता हूं? यदि हां, तो सी #/एएसपी.नेट में कोई ऐसा कैसे करेगा?

अन्यथा, इस समस्या से निपटने के लिए आपके पास अन्य सुझाव क्या हैं?

उत्तर

7

यह थोड़ा अपरंपरागत है और मुझे यकीन है कि कुछ शुद्धवादी इस विचार से परेशान होंगे (शीर्षकों का उपयोग केवल संदेश के परिवहन के लिए किया जाना चाहिए, और संदेश के अर्थशास्त्र में शामिल नहीं होना चाहिए)।

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

विधियों के इन अतिरिक्त अधिभार को जोड़ने में इतना मुश्किल क्यों है?

+5

हां यह डब्ल्यूएस- * के लिए अपरंपरागत है, लेकिन मुझे लगता है कि रीस्टफुल टाइप लोग (RESTafarians?) इसके साथ ठंडा होगा;) –

+5

मैं काफी निश्चित रूप से विश्वसनीय प्रकार इनपुट पैरामीटर अनुरोध पथ या अनुरोध निकाय में होने की अपेक्षा करता हूं। –

+3

मैं मोबाइल नेटवर्क के कारण इस से थोड़ा सा रहा हूं। एक नौकरी पर, हमने दूसरे छोर पर डेटा को सत्यापित करने के लिए हमारे कस्टम हेडर का कुछ हमाया। कुछ यूके नेटवर्क पर, उनके प्रॉक्सी ने कुछ प्रकार की हेडर स्ट्रिप/पुनर्निर्माण किया जिसके दौरान हमारे हेडर से अतिरिक्त स्थान हटा दिया गया था। एक को हल करने में अच्छा समय नहीं था। –

1

आप कर सकते हैं, लेकिन आपको एक शीर्षलेख परिभाषित करना होगा, फिर उसका मान निर्धारित करना होगा। HttpWebRequest में आप किसी भी शीर्षलेख को जोड़ सकते हैं, जब तक कि यह आरक्षित लोगों में से एक न हो।

1

ध्यान दें कि एएसपी.NET में कस्टम हेडर का उपभोग करने के लिए यह ठीक है, एएसपी.NET में कस्टम हेडर का उत्पादन करना हमेशा संभव नहीं होता है। आप केवल तभी ऐसा कर सकते हैं यदि आप ASP.NET एकीकृत मोड चला रहे हैं (यानी आईआईएस 7.0)।

1

आप कर सकते हैं, लेकिन यह पहली जगह में webservices का उपयोग करने के पूरे उद्देश्य को हरा देता है। यह कहने के समान ही कि एक लोकप्रिय विज्ञान किताबों में प्रत्येक सूत्र दर्शकों को आधे से कम कर देता है, इंटरफेस की जटिलता में वृद्धि करने वाले प्रत्येक त्वरित हैक का अर्थ भविष्य में बहुत सारी परेशानी होगी।

4

हां इसकी अनुमति है - लेकिन ध्यान दें कि यह प्रॉक्सी और कभी-कभी http जागरूक फ़ायरवॉल का उपयोग करने की क्षमता को काट सकता है (वे हेडर का निरीक्षण और पुनर्लेखन करते हैं)।

4
Request.Headers.Add("headername", "headervalue"); 
Response.Headers.Add("headername", "headervalue"); 
2

मैं इस अवधारणा का उपयोग किया है एक बार लॉगआउट संभाल एक इंट्रानेट वेब अनुप्रयोग में ajax कॉल (वेब ​​सेवा से संबंधित कुछ भी नहीं) के लिए पुनर्निर्देशित करने के लिए।

यह मेरा सबसे अच्छा समाधान था, लेकिन जैसा कि कुछ अन्य ने कहा है कि यह निर्भर करता है कि यदि आप अपने उद्देश्य के लिए सिद्धांतों के शीर्षकों के इलाज के लिए ग्राहकों को बाधा डाल सकते हैं।

निश्चित रूप से एक चीज नहीं है जिसे आप डिफ़ॉल्ट रूप से करना चाहते हैं।

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