मैं कर रहा हूँ रेट्रो-फिटिंग एक PHP HTTP प्रॉक्सी (कैशिंग के लिए) का उपयोग करने के लिए एक आवेदन वास्तविक API सर्वर के बजाय, एप्लिकेशन को वर्तमान में सर्वर यूआरआई और कोड के साथ पथ को जोड़ती है:का मेल यूआरआई और पथ
methodUri = new Uri(apiUri, method.Path)
कहाँ:
- apiUri = "http://api.eve-online.com/" (System.Uri वस्तु)
- method.Path = "/ चार/Sk illIntraining.xml.aspx "(स्ट्रिंग)
उपरोक्त कथन का परिणाम
"http://api.eve-online.com/char/SkillIntraining.xml.aspx" (System.Uri Object)
पीएचपी HTTP प्रॉक्सी का उपयोग करने के अनुरोध को बदलने की के रूप में
- इस प्रकार होता है apiUri = "http://www.r-s.co.uk/eproxy.php" (सिस्टम.यूरी ऑब्जेक्ट)
- विधि। पैथ = "/char/SkillIntraining.xml.aspx" (स्ट्रिंग)
उत्पादन मैं उम्मीद कर रहा था था:
"http://www.r-s.co.uk/eproxy.php/char/SkillIntraining.xml.aspx" (System.Uri Object)
हालांकि उत्पादन मैं मिलता है:
"http://www.r-s.co.uk/char/SkillIntraining.xml.aspx" (System.Uri Object)
मैं समझें कि यह कन्स्ट्रक्टर उरी (उरी, स्ट्रिंग) की सही कार्यक्षमता है, मेरा सवाल यह है कि आउटपुट प्राप्त करने के लिए मेरे स्थान पर उपयोग करने के लिए बेहतर कार्य या कन्स्ट्रक्टर क्या होगा? मैंने विधि में अग्रणी "/" को हटाने का प्रयास किया है। इसे एक पूर्ण पथ से एक सापेक्ष पथ पर ले जाना, हालांकि इससे मदद नहीं मिली।
नोट: नीचे दोनों समाधान काम करते हैं, फिर भी System.UriBuilder System.Uri का उपयोग करने से संसाधनों के लिए कम बदलाव किये गये यूआरआई के और रास्तों के संयोजन के लिए और मेरे मामले में एक और अधिक मजबूत तंत्र प्रदान करता है। अगर मैं पसंद करता तो मैं दोनों उत्तरों को सही के रूप में चिह्नित करता।
आप सही सिस्टम हैं। यूरीबिल्डर यूआरआई बनाने का एक और अधिक मजबूत तरीका है, धन्यवाद। –
ध्यान दें कि पथ यूआरएल एन्कोड किया जाएगा, इसलिए यदि इसमें अतिरिक्त क्वेरी स्ट्रिंग है? और वर्ण एन्कोड किए जाएंगे। यह है वर्णित इस विधि में एक कमजोरी। –
'उरीबिल्डर' की क्वेरी स्ट्रिंग्स के लिए एक अलग क्वेरी संपत्ति है, जिसे अनुशंसा की जाती है क्योंकि यह उस केस केस के लिए सही ढंग से वर्ण एन्कोडिंग को संभालती है। –