2012-12-07 3 views
9

Meine Frage ist in Bezug auf die Übergabe einer URL an HttpWebRequest ohne zu entkommen, ich suchte in den Foren und im Internet, aber ich habe keine gute Lösung dafür gefunden.Uri Konstruktor mit dontEscape ist veraltet, was ist alternativ?

Ich habe folgende URL: string URL= www.website.com/sub/redirec\t\bs\dd

Also, wenn ich ein uri wie folgt zu erstellen:

Uri uri = new Uri(URL); 
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(uri); 

In diesem Fall auf einer get-Methode werde ich folgende URL erhalten: www.website.com/sub/redirect%5Ct%5Cbc%5Cdd

Dieses Zeichen "\" wird durch "% 5C" ersetzt. Was ist für mich wichtig, um nicht zu passieren?

kann ich vermeiden, dass durch:

Uri uri = new Uri(URL, true); //bool dontEscape 

Aber dieser Konstruktor ist veraltet. Wie man denselben Effekt ohne veraltetes verwendet?

+0

Ihre URL ist keine gültige URI. Verwenden Sie * UriBuilder *, um einen URI mit dem korrekten Protokoll zu erstellen. – IllidanS4

Antwort

7

Verwendung dieses

Uri uri = new Uri(Uri.EscapeUriString(URL)); 
+2

Jetzt ziemlich. Probieren Sie Folgendes aus: 'Uri uri = new Uri (Uri.EscapeUriString (" http://example.com?param=emai%2Btag%40gmail.com "));' Funktioniert nicht – Alex