muszę zwrócić następujący adres URL w mojej aplikacji:System.Net.Uri z postaciami urlencoded
http://feedbooks.com/type/Crime%2FMystery/books/top
Kiedy uruchomić następujący kod:
Uri myUri = new Uri("http://feedbooks.com/type/Crime%2FMystery/books/top");
Konstruktor Uri
dekoduje %2F
do literalny /
, a otrzymuję błąd 404, ponieważ zmienił on adres URL na:
http://feedbooks.com/type/Crime/Mystery/books/top
Klasa Uri
ma konstruktor, który przyjmuje parametr dontEscape
, ale ten konstruktor jest przestarzały i ustawienie go na true
nie daje żadnego efektu.
Moją pierwszą myślą było zrobić coś takiego:
Uri myUri = new Uri("http://feedbooks.com/type/Crime%252FMystery/books/top");
z nadzieją, że będzie konwertować %25
w dosłownym %
, ale to nie działało.
Wszelkich pomysłów, jak utworzyć poprawny obiekt Uri
dla tego konkretnego adresu URL w .NET?
um ... Próbowałeś \% (lub \\%) ... :( – apandit
Kocham pytanie. Otóż, proszę dać odpowiedź Java dla java.io.URI, który ma taką samą obchodzi problem, ale bez flag (w pobliżu, jak mogę powiedzieć)! – davidbak