Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 24777|Répondre: 3

[WebAPI] WebAPI personnalise le format des données de retour

[Copié le lien]
Publié sur 30/11/2017 11:00:16 | | | |
Récemment, lors de l’utilisation de WebAPI, le navigateur accède à WebAPI, et par défaut est le format XML ; je pense que ce format de données retourné devrait être personnalisable par l’utilisateur, permettant au serveur de renvoyer un format XML ou JSON, au lieu de configurer du code serveur !



Bien que le code serveur puisse être configuré, je ne pense pas que ce fût l’intention initiale de WebAPI.

1. Quel type de données WebAPI retourne-t-il par défaut, json ou xml ?
2. Comment modifier le type de données de retour de WebAPI
J’utilise le navigateur IE pour demander que les données retournées soient en format JSON, et que le format de données renvoyé par Firefox et Chrome soit XML, puis j’utilise HttpWebRequest pour demander que le retour soit en format JSON, je me suis demandé pourquoi le même programme, le même fichier de configuration, pourquoi le format de données de sortie est différent, même si votre sortie par défaut en json ou xml peut être comprise, pourquoi y a-t-il des navigateurs différents, le format de sortie est différent, Après quelques recherches, j’ai enfin compris la raison

Après test, il a été constaté que les données retournées par le navigateur IE sont json, tandis que Firefox et Chrome sont xml, et il a été constaté qu’IE ne possède pas le type « application/xml » comparé à Firefox et Chrome lorsque les requêtes http sont effectuées. Ainsi, par défaut, les données au format json, tandis que Firefox et Chrome envoient des types XML acceptables, donc les données xml sont renvoyées, et ce qui suit est l’en-tête de requête d’IE, Firefox et Chrome


Accepter n’apparaît que dans les Requêtes

Ce que cela signifie : Le type de média acceptable côté navigateur


Par exemple, Accepter : texte/html signifie que le navigateur peut accepter le type de retour postal du serveur sous forme de texte/html, ce qui est communément appelé documents html

Si le serveur ne peut pas retourner de données de type text/html, il doit renvoyer une erreur 406 (non acceptable)

Le joker * représente n’importe quel type

Par exemple, Accepter : */* signifie que le navigateur peut gérer tous les types (généralement le navigateur envoie cela au serveur)

Par exemple, Accepter : text/* signifie que toutes les sous-classes de texte sont acceptables

Accept peut supporter plusieurs types de séparations

Par exemple, Accepter : audio/* ; Q=0.2, Audio/Basic signifie que les navigateurs préfèrent les types audio/médias Basic, mais s’ils n’ont pas ce type, d’autres types audio peuvent aussi être utilisés

Ici, un q=0,2 apparaît, qui est une valeur représentant le degré d’association, et la valeur par défaut est un, classée du plus grand au plus petit

Par exemple, Accepter : texte/simple ; q=0,5, text/html, text/x-dvi ; q=0,8, text/x-c

Les priorités de type acceptables sont les suivantes

1) Texte/texte html/x-c

2) texte/x-dvi

3) texte/simple

q est une valeur comprise entre 0 et 1, la valeur par défaut de q est 1, et q = 0 signifie non acceptable



Enfin, les résultats des tests :

NavigateurRetour à la mise en page  En-tête de demande d’acceptation
c’est-à-direjsonText/html, application/xhtml+xml, */*
ChromeXMLtext/html,application/xhtml+xml,application/xml ; q=0,9,image/webp,image/apng,*/* ; q=0,8
FirefoxXMLtext/html,application/xhtml+xml,application/xml ; q=0,9,*/* ; q=0,8,*/*



Poursuivez les tests suivants

1. Seul accept :application/json est envoyé, et le résultat est retourné json

2. Seul accept :application/xml est envoyé, et le résultat retourne xml

3. Envoyez accepter : application/xml et application/json en même temps, et le résultat retourne json

4. Envoyez accept :application/json et application/xml en même temps, et le résultat retourne json

5. Modifier la priorité et envoyer application/xml en même temps. q=1.0,application/json ; q=0,9, et le résultat a rendu XML

On peut en déduire :

Le type de données de retour de WebAPI est déterminé par l’acceptation de l’en-tête de requête, et le type de retour par défaut est json
1. Si ni application/json ni application/xml n’existent, retournez les données json
2. Lorsque seule application/json est disponible, retournez les données json
3. Lorsque seule application/xml est disponible, les données xml sont retournées
4. Lorsqu’il y a application/json et application/json en même temps, le type de données retourné est sans importance par rapport à l’ordre des deux ; si les deux ont la même priorité, json est retourné, et si la priorité est différente, le type de priorité la plus élevée est retourné



Accepte la têteType de retour
application/JSONjson
Application/XMLXML
application/xml,application/jsonjson
application/json,application/xmljson
application/xml ; q=1.0,application/json ; q=1.0json
application/xml ; q=0,9,application/json ; q=0,9json
application/xml ; q=1.0,application/json ; q=0,9XML
application/xml ; q=0,9,application/json ; q=1.0json


Comme montré ci-dessous :





Précédent:Python3 implémente des tables de partitionnement horizontales à accès concurrent
Prochain:.Net MVC implémente un long polling
Publié sur 30/11/2017 11:06:08 |
C’est incroyable, j’avais déjà vécu cette situation, mais je ne me demandais pas pourquoi
 Propriétaire| Publié sur 30/11/2017 11:07:36 |
QWERTYU Publié le 30-11-2017 à 11:06
C’est incroyable, j’avais déjà vécu cette situation, mais je ne me demandais pas pourquoi

Il est recommandé de décourager le retour du format XML car, dans certains cas, le retour du format JSON est normal et le retour du format XML fait une exception

Par exemple, si la valeur de retour est object, le format JSON de retour est normal, et le format XML de retour signalera une erreur
Publié sur 25/04/2018 08:50:44 |
La conférence est très détaillée, et il y a des points de connaissance, merci, elle a été rassemblée
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com