2011-05-31 15 views
15

मैं एनकोड कुछ समय URL पर के बाद से मैं अपने साथ कुछ दस्तावेज़ पथ पारित करने के लिए है की जरूरत है और यह इसयूआरएल एनकोड अवधि?

http://example.com/test.aspx?document=test.docx 

की तरह है तो test.docx मुझे एक अमान्य वर्ण की एक त्रुटि हो रही है। इसलिए मैं

. --> %2E 

करने के लिए इसे बदलने की जरूरत है मैं Server.UrlEncode

string b = Server.UrlEncode("http://example.com/test.aspx?document=test.docx"); 

का उपयोग करने की कोशिश की, लेकिन मैं

"http%3a%2f%2fexample.com%2ftest.aspx%3fdocument%3dtest.docx" 

मिलता तो मैं एक स्ट्रिंग की तरह उपयोग करने के लिए की जगह है और करते हैं यह मैन्युअल रूप से और उस कोड के साथ सभी अवधि को प्रतिस्थापित करें?

+1

क्या आप वाकई '.' हैं? यह मेरे लिए एक पूरी तरह से वैध क्वेरी स्ट्रिंग की तरह दिखता है। –

उत्तर

13

उस अवधि में वह समस्या नहीं है (दिया गया है कि% 2E समस्या का समाधान नहीं करता है)। एक अवधि एक पूरी तरह से वैध यूआरएल चरित्र है जो समस्या है कि यह अवधि नहीं है। त्रुटि को फेंकने या पूर्ण त्रुटि विवरण पोस्ट करने के स्टैक ट्रेस की जांच करें।

और आपको पूरे पथ को यूआरएल एन्कोडिंग नहीं होना चाहिए। केवल क्वेरी स्ट्रिंग पैरामीटर मान

string b = "http://example.com/test.aspx?document=" + Server.UrlEncode("test.docx"); 

क्या आप अभी भी त्रुटि प्राप्त कर रहे हैं यदि आप इसे इस तरह से आजमाते हैं?

मैं दस फुट ध्रुव के साथ शेयरपॉइंट को नहीं छूंगा। हालांकि, इस अवधि से बचने से शेयरपॉइंट को इसके शेंगेन करने से रोकना आवश्यक नहीं होगा। लेकिन मुझे लगता है कि आपको कम से कम कोशिश करनी चाहिए।

Server.UrlEncode("test.docx").Replace(".", "%2E"); 
+1

अच्छी शेयरपॉइंट इसे पसंद नहीं करता है। मुझे लगता है कि क्वेरी स्ट्रिंग में या जो भी रूट फ़ोल्डर खोजने के लिए यूआरएल पथ के हिस्से का उपयोग कर रहा है और इसमें कोई अवधि नहीं हो सकती है। सीमा परीक्षण से% 2E इसे ठीक करने लगता है। – chobo2

+0

एएसपी.नेट वेब पेजों का उपयोग करते समय मैं एक समान समस्या में भाग गया। उदाहरण: http://www.cutrategamer.com/app/remove-subscription/30/myemail%40gmail.com एक त्रुटि संदेश फेंक देगा। "% 2E" के साथ अवधि को बदलने का प्रयास करेंगे। –

+1

कोई भाग्य, @ Tod1d? मुझे एक ही समस्या है जो एक बहुत ही समान एएसपी.नेट वेब एपीआई यूआरएल के साथ है। –

13

यह वास्तव में एक पुराना सवाल है, लेकिन मैं इसी तरह की समस्या के लिए इस खोज में भाग गया। मैंने अपने यूआरएल के अंत में एक अवधि में "/" फंस लिया और यह समस्या के आसपास हो गया।

+0

कमाल। - यह मेरे लिए वेब एपीआई के साथ काम किया। - मैं बस इतना कर सकता हूं कि मेरा सिर हिलाएं। डीएक्स – BrainSlugs83

+0

किसी भी व्यक्ति के लिए बस एक नोट जो इस उत्तर का उपयोग करेगा। यह प्रदान किए गए एक ओपी सहित _most_ उपयोग मामलों के लिए काम करेगा। यदि URL एक डॉट वर्ण के साथ समाप्त होता है तो यह ** ** ** काम नहीं करता है। –

+0

अच्छा समाधान लेकिन यदि कोई उपयोगकर्ता पृष्ठ को फिर से लोड करता है तो उसे कोणीय में 404 फिर से मिलता है – Toolkit

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