2012-12-07 19 views
9

Moje pytanie dotyczy przekazania adresu URL do HttpWebRequest bez ucieczki, przeszukałem fora i internet, ale nie znalazłem dla niego dobrego rozwiązania.Konstruktor Uri z dontEscape jest przestarzały, co to jest alternatieve?

Mam następujący adres URL: string URL= www.website.com/sub/redirec\t\bs\dd

Więc kiedy utworzyć URI tak:

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

w tym przypadku na metody GET będę się następującym adresem URL: www.website.com/sub/redirect%5Ct%5Cbc%5Cdd

ten znak "\" zostanie zastąpione przez "% 5C". Co jest dla mnie najważniejsze, abym się nie wydarzył?

mogę tego uniknąć przez:

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

Ale to konstruktor jest przestarzała. Jak uzyskać ten sam efekt bez używania przestarzałego?

+0

Twój adres nie jest prawidłowy URI. Użyj * UriBuilder * do skonstruowania URI z prawidłowym protokołem. – IllidanS4

Odpowiedz

7

użycie tego

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

Teraz całkiem. Spróbuj tego: 'Uri uri = new Uri (Uri.EscapeUriString (" http://example.com?param=emai%2Btag%40gmail.com "));' Nie działa – Alex