2010-11-17 29 views
2

Je vais avoir une URL dans le format ci-dessous abcd.com/xyz/pqr%2Fss/abcC# décode l'URL contenant% 2F sur le chemin, est-il possible de demander à l'API d'envoyer l'URL telle quelle?

Je veux que ce soit envoyer au serveur comme il est. Lorsque je construis Uri en utilisant System.Uri, il le convertit en abcd.com/xyz/pqr/ss/abc et il échoue car je n'ai pas d'URL avec le chemin spécifié. Quand j'ai essayé avec le double codage (abcd.com/xyz/pqr%252Fss/abc), il envoie l'Uri tel quel mais il échoue en tant que côté serveur (abcd.com/xyz/pqr%) 2Fss/abc)

+0

S'il envoie l'URL "tel quel" selon votre deuxième exemple, il échoue sur le serveur. Alors oui, il y a un moyen de le faire - la méthode de double-encodage. – cdhowie

+0

Ensuite, vous avez un problème avec le serveur. Quel est le côté serveur? – SLaks

+0

Et vous avez essayé d'utiliser ce HTMLEncode sur la chaîne avant de l'envoyer? http://msdn.microsoft.com/en-us/library/w3te6wfz.aspx –

Répondre

0

Si vous construisez votre uri en tant que tel:

Uri u = new Uri("http://abcd.com/xyz/pqr%2Fss/abc") 

Accéder à la chaîne codée comme ceci:

u.OriginalString 
0

j'avais trop ce problème, mais j'ai trouvé la solution: quand vous utilisez HttpUtility.UrlEncode pour être sûr que l'application va lire directement l'URL que vous avez à construire le lien de cette façon:

http://www.abcd.com/xyz?val=pqr%2Fss 

et non comme ce

http://www.abcd.com/xyz/pqr%2Fss 

pqr%2Fss est le résultat de la HttpUtility.UrlEncode("SOME STRING")