J'utilise la classe WebRequest pour faire une demande à un site. La chaîne de requête contient une barre oblique (/), qui provoque la coupure de l'URL par le site, car elle ne la voit pas dans la chaîne de requête.Problème avec une barre oblique dans une chaîne de requête
La chaîne de requête est: "mes paramètres/séparés par une barre oblique".
La demande:
var request = WebRequest.Create(
"http://www.somesime.com/q-my+params+%2f+separated+by+slash"
);
Ce que je manque?
EDIT: Après toutes les réponses ici sont à jour:
Je me suis trompé sur la chaîne de requête, ce n'est pas en fait la chaîne de requête, mais l'URL doit regarder (sans "?"):
"http://www.somesime.com/q-my+params+%2f+separated+by+slash"
L'URL "http://www.somesime.com/q-my+params+%2f+separated+by+slash" est le résultat de la méthode Server.UrlEncode. Le code:
var url = "http://www.somesime.com/q-" +
Server.UrlEncode(@"my params/separated by slash");
EDIT 2: Si je place l'url résultant dans un navigateur, tout fonctionne. Mais si je le lance à travers la classe WebRequest, les résultats url comme on l'appelait sans «/séparés par une barre oblique » partie
Dans votre exemple, il n'y a pas de chaîne de requête.La chaîne de requête est la partie de l'URL après un point d'interrogation, bien que cela ressemble un peu à une chaîne de requête. Une partie du chemin –
Server.UrlEncode va supprimer les '/', donc cela ne gâchera pas votre webrequest, en supposant qu'il utilise le routage URL que vous venez de modifier le chemin – Charlie
@ F5ToDebug: Server.UrlEncode convertit '/' à '% 2f' Mais le site, je fais une demande, toujours le voir comme '/' – Kamarey