j'ai un service web avec suivant contrat d'exploitation et mon service est hébergé à http://localhost:9002/Service.svc/
J'ai une question sur les modèles d'URI dans WCF services
[OperationContract]
[WebGet(UriTemplate = "/Files/{Filepath}")]
Stream DownloadFile(string Filepath);
Ce service web laisseraient aux utilisateurs télécharger le fichier, si le filepath
approprié est fourni (en supposant, je trouve en quelque sorte ce chemin de fichier approprié).
Maintenant, je peux accéder à ce service à partir d'un navigateur en tapant, http://localhost:9002/Service.svc/Files/(Filepath}
Si {filepath}
est une chaîne simple, ce ne est pas un problème, mais je veux envoyer l'emplacement du fichier. Supposons que les utilisateurs veulent télécharger le fichier C:\Test.mp3
sur le serveur. Mais comment puis-je passer C:\Test.mp3
en tant que {Filepath}
? J'obtiens une erreur lorsque je tape http://localhost:9002/Service.svc/Files/C:\Test.mp3
dans le navigateur. Je ne connais pas encore les services Web et je trouve que cette communauté est le moyen le plus rapide d'obtenir des réponses à mes questions.
Cela a fonctionné maintenant. besoin d'utiliser HttpServerUtility.UrlTokenDecode() de System.web
Référence System.Web, puis appelez 'HttpUtility.UrlEncode()' sur votre chemin de fichier - qui active la : et \ dans les codes URL qui devraient être bien sur l'URL –
Il ne fonctionne toujours pas, il encode ':' et '\' mais n'encode pas '.'. Des idées? – Debby