Pour le code il ne m'en fallait pas plus que ce que tu donnes, ça confirme que c'est bien ce que j'avais compris.
Tu l'auras deviné toi même, je pense que ce comportement de la classe Uri est tout à fait explicable vu que la norme impose de travailler en lowercase car le Host est sensé ne pas être case sensitive.
Et vu que c'est un objet super bas niveau ça s'annonce délicat à contourner si ça n'a pas été prévu.
Pour le fun tu peux tenter de surcharger toute la classe Uri (attention c'est une usine à gaz) si elle n'est pas "sealed", pour permettre son instanciation en préservant la casse original et passer ton type surchargé à la signature de WebRequest.Create qui prend en paramètre une instance d'URI.
Si le lowercase n'est appliqué que là ça peut marcher, mais s'il est à nouveau forcé plus loin (dans WebRequest par exemple) ça ne marchera pas. Idem si la classe n'est pas surchargeable.
edit : je viens d'ouvrir Uri avec dotPeek, c'est encore pire que dans mon souvenir . Je crois que si tu n'as pas d'autre idée que ma suggestion il vaut mieux attendre le retour du presta
re-edit :
La MSDN ( http://msdn.microsoft.com/en-us/li [...] 10%29.aspx ) dit ceci :
Citation :
The Uri properties return a canonical data representation in escaped encoding, with all characters with Unicode values greater than 127 replaced with their hexadecimal equivalents. To put the URI in canonical form, the Uri constructor performs the following steps: Converts the URI scheme to lowercase. Converts the host name to lowercase.
|
J'ai regardé un peu mais à mon avis sans grosse bidouille c'est cuit.
http://tools.ietf.org/html/rfc3986 , cf partie 3.2.2 (Host) : sérieux, demande à ton prestataire de corriger, c'est pas à toi de faire marcher leur bousin.
Message édité par TotalRecall le 16-01-2015 à 18:16:04
---------------
Topic .Net - C# @ Prog