Uri
ведет себя по-разному в. Net4.0 vs. Net4.5
var u = new Uri("http://localhost:5984/mycouchtests_pri/test%2F1");
Console.WriteLine(u.OriginalString);
Console.WriteLine(u.AbsoluteUri);
Результат NET4.0
http://localhost:5984/mycouchtests_pri/test%2F1
http://localhost:5984/mycouchtests_pri/test/1
Результат NET4.5
http://localhost:5984/mycouchtests_pri/test%2F1
http://localhost:5984/mycouchtests_pri/test%2F1
Поэтому при использовании HttpClient
распространяемого Microsoft через NuGet, запросы, подобные описанным выше, с .Net4.0, поскольку HttpRequestMessage
использует Uri
> .
Любые идеи для обходного пути?
ИЗМЕНИТЬ
Существует НЕПРЕРЫВНОЕ, добавив конфигурацию для <uri>
, например. App.config
или 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>
Но поскольку это библиотека инструментов, это не вариант. Если предполагается, что HttpClient
для .Net4.0 находится на одном уровне с параметром в .Net4.5, они должны иметь такое же поведение.