Supponiamo che io voglio creare un oggetto Uri dalla seguente stringa:Creazione di un URI in .NET urldecodes automaticamente tutti i parametri di stringa passata
string url = @"http://someserver.com?param1=1&url=http%3a%2f%2fwww.otherserver.com";
Uri uri = new Uri(url, UriKind.Absolute);
Risultato atteso sarebbe:
http://someserver.com?param1=1&url=http%3a%2f%2fwww.otherserver.com
Ottenuto:
http://someserver.com/?param1=1&url=http://www.otherserver.com
Lo stesso comportamento si nota in molti metodi correlati che permettono la creazione Uri: Uri.TryCreate, UriBuilder.Uri, ecc.
Come ottengo un Uri che conserva il parametro codificato iniziale?
Risultato previsto di fare cosa? Se provo il tuo codice in un'applicazione Console 'Console.WriteLine (uri.AbsoluteUri);' restituisce l'url codificato –
Per altre ricerche su questo. In realtà è il metodo ToString() che decodifica la stringa. .OriginalString o .AbsoluteUri restituirà la stringa codificata. Per un url relativo, utilizzare .PathAndQuery – jishi