2010-09-16 1 views
0

Je dispose d'un service WCF configuré pour traiter les données via plusieurs points d'extrémité (SOAP, JSON et XML), le SOAP et le XML fonctionnent parfaitement, mais lorsque j'essaie d'afficher le fichier json I obtenir une invite pour télécharger un fichier avec les résultats JSON au lieu d'afficher les résultats dans le navigateur. Cela n'aura probablement pas d'importance car le client consommera probablement les données d'un environnement .net qui sera capable de gérer la réponse en mode natif, mais je voulais voir s'il y avait un moyen d'afficher les résultats de json dans le navigateur comme les résultats XML.Serveur JSON à partir du service WCF sans extension dans IIS

Un exemple de l'URL que je utilise pour obtenir les résultats: http://localhost/api/Service.svc/json/GetResults?name=Test&test=test

Cela me demande alors de télécharger un fichier nommé « GetReults » sans extension et le type de fichier est: application/JSON

+0

Je pense que c'est le comportement par défaut du navigateur qui gère le type de l'application \ json mime. –

Répondre

0

Si votre objectif est d'afficher le contenu de la réponse json dans le navigateur, modifiez vos paramètres dans Firefox ou utilisez un autre navigateur. J'ai essayé une chose similaire avec IE et il a montré le contenu de JSON dans le navigateur sans faire de changements. Je ne suis pas sûr de ce que Chrome va faire.

J'ai une situation similaire avec un appel de repos que je poste une demande. Je faisais un service de repos simulé dans Grails et remarquais que lorsque je frappais le serveur live ou mon faux serveur avec Firefox, il me demandait de télécharger le fichier, mais pas avec IE. Le problème que je suis en train de traiter maintenant est que j'essaie de frapper mon point final avec SoapUI et il me demande aussi de télécharger le fichier. Si je tape sur le serveur live avec SoapUI, il ne me demande pas de télécharger le fichier.

Toujours en train d'essayer de résoudre ce problème.

0

C'est exactement le comportement désiré. Le type de contenu de la réponse est "application/json". La plupart des navigateurs ne peuvent pas afficher du contenu avec ce type de contenu en ligne (sauf s'ils sont configurés manuellement). Ils vous invitent donc à télécharger le fichier.

Si vous enregistrez réellement ce fichier et l'ouvrez avec, par exemple, note Bloc-notes, vous remarquerez que la réponse JSON pure est contenue dans le fichier.

L'impossibilité de gérer ce type de contenu et le fait que le navigateur forcent ce téléchargement n'est cependant pratiquement jamais un problème. La raison en est que le cas d'utilisation général de ce point de terminaison JSON est soit les pages Web ASP.NET AJAX (qui effectuent automatiquement ces requêtes et analysent les réponses par eux-mêmes), soit les environnements de script tels que Python ou Perl. obtenir les demandes, puis les analyser) ou des structures JavaScript personnalisées.

Espérons que cela aide!

Questions connexes