Uri
si comporta in modo diverso in .Net4.0 vs .Net4.5How-to soluzione alternativa differenze con Uri e URL codificati in .Net4.0 vs .Net4.5 utilizzando HttpClient
var u = new Uri("http://localhost:5984/mycouchtests_pri/test%2F1");
Console.WriteLine(u.OriginalString);
Console.WriteLine(u.AbsoluteUri);
Esito NET4.0
http://localhost:5984/mycouchtests_pri/test%2F1
http://localhost:5984/mycouchtests_pri/test/1
Esito NET4.5
http://localhost:5984/mycouchtests_pri/test%2F1
http://localhost:5984/mycouchtests_pri/test%2F1
Quindi, quando si utilizzano le richieste HttpClient
distributed by Microsoft via NuGet come sopra, con .Net4.0, poiché HttpRequestMessage
utilizza Uri
.
Tutte le idee per una soluzione alternativa?
EDIT C'è un NON APPLICABILE soluzione aggiungendo configurazione per <uri>
in es App.config
o Machine.config
(http://msdn.microsoft.com/en-us/library/ee656539(v=vs.110).aspx).
<configuration>
<uri>
<schemeSettings>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
</schemeSettings>
</uri>
</configuration>
Ma questa è una libreria strumenti, che non è proprio un'opzione. Se lo HttpClient
per .Net4.0 dovrebbe essere alla pari con quello in .Net4.5, dovrebbero avere lo stesso comportamento.
Si può vedere che 'u.OriginalString' fornisce gli stessi valori, indipendentemente da .net frameword, Quindi puoi usare solo questo, a meno che tu non abbia effettivamente bisogno dell'altro, Correggimi se ho torto! –
Non ho il controllo. L'URI viene consumato da qualche parte nelle terre scure di HttpClient e dal gestore di messaggi associato. – Daniel
Ho pensato, sei preoccupato dell'uso di 'OriginalString' vs' AbsoluteUri'! , Ma ancora non sono chiaro, per quello hai bisogno di soluzioni alternative! –