2013-02-04 52 views
9

मेरी आवश्यकता है एचटीपी यूआरएल को पार्स करना और तदनुसार कार्यों को कॉल करना। मेरे वर्तमान कार्यान्वयन में, मैं नेस्टेड का उपयोग कर रहा हूं, अन्यथा कथन जो मुझे लगता है कि एक अनुकूलित तरीका नहीं है। क्या आप कुछ अन्य कुशल दृष्टिकोण सुझा सकते हैं?मैं सी # में HTTP यूआरएल कैसे पार्स कर सकता हूं?

Urls इस तरह हैं:

  • server/func1
  • server/func1/SubFunc1
  • server/func1/SubFunc2
  • server/func2/SubFunc1
  • server/func2/SubFunc2
+0

यूआरएल को विभाजित करने और केवल अंतिम टोकन प्राप्त करने के बारे में, अगर आपको केवल फ़ंक्शन नामों की आवश्यकता है? – SamGamgee

+1

क्या आप "पार्स" से क्या मतलब समझ सकते हैं? मुझे लगता है कि कुछ विशिष्ट डेटा है जिसे आप निकालना चाहते हैं; लेकिन किस हिस्से और किस उद्देश्य के लिए? –

+0

मुझे कई तरह के यूआरएल मिलते हैं। इसमें गुण भी हैं, यूरी में उपयोगी मूल्य भी। – vijay053

उत्तर

36

मुझे लगता है कि आप System.Uri कक्षा से बहुत अधिक उपयोग कर सकते हैं। इसे एक यूआरआई फ़ीड करें और आप कई व्यवस्थाओं में टुकड़े खींच सकते हैं।

कुछ उदाहरण:

Uri myUri = new Uri("http://server:8080/func2/SubFunc2?query=somevalue"); 

// Get host part (host name or address and port). Returns "server:8080". 
string hostpart = myUri.Authority; 

// Get path and query string parts. Returns "/func2/SubFunc2?query=somevalue". 
string pathpart = myUri.PathAndQuery; 

// Get path components. Trailing separators. Returns { "/", "func2/", "sunFunc2" }. 
string[] pathsegments = myUri.Segments; 

// Get query string. Returns "?query=somevalue". 
string querystring = myUri.Query; 
0

मैं स्ट्रिंग बंटवारे के साथ Suncat2000 के जवाब में विभाजित संयुक्त URL के दिलचस्प सुविधाओं में मिलता है। नेविगेशन तर्क e.Parameter के रूप में किसी अन्य पृष्ठ से आदि:: मैं https सहित एक पूर्ण उरी में गुजर रहा

Uri playlistUri = (Uri)e.Parameter; 
string youtubePlaylistUnParsed = playlistUri.Query; 
char delimiterChar = '='; 
string[] sections = youtubePlaylistUnParsed.Split(delimiterChar); 
string YoutubePlaylist = sections[1]; 

यह मैं गूगल एपीआई में उपयोग के लिए PLs__ आदि में प्लेलिस्ट हो जाता है प्रपत्र।

2

यह एक देर से जवाब का एक सा के रूप में आ सकता है, लेकिन मुझे लगने हाल ही में कुछ यूआरएल पार्स करने का प्रयास और मैंने देखा here रूप Uri और System.Web.HttpUtility के संयोजन का उपयोग गुज़रा, अपने URL तो यह मैं क्या किया है http://one-domain.com/some/segments/{param1}?param2=x.... की तरह कर रहे थे :

var uri = new Uri(myUrl); 
string param1 = uri.Segments.Last(); 

var parameters = HttpUtility.ParseQueryString(uri.Query); 
string param2 = parameters["param2"]; 

ध्यान दें कि दोनों ही मामलों में आप string के साथ काम करेंगे, और जब सेगमेंट के साथ काम विशेष रूप से थके हुए हो।