Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 24777|Odpoveď: 3

[WebAPI] WebAPI prispôsobuje formát vrátených dát

[Kopírovať odkaz]
Zverejnené 30. 11. 2017 11:00:16 | | | |
V poslednej dobe, keď používam WebAPI, prehliadač pristupuje k WebAPI a predvoleným je XML formát, myslím, že tento vrátený dátový formát by mal byť používateľom prispôsobiteľný, aby server mohol vrátiť XML formát alebo JSON formát namiesto serverového kódu na konfiguráciu!



Aj keď sa serverový kód dá nakonfigurovať, nemyslím si, že to bol pôvodný zámer WebAPI.

1. Aký typ dát WebAPI štandardne vracia, json alebo xml?
2. Ako upraviť typ vrátených dát WebAPI
Používam prehliadač IE, aby som požiadal, aby vrátené dáta boli vo formáte JSON, a formát dát vrátený Firefoxom a Chromem je XML, a potom používam HttpWebRequest na požiadanie, aby vrátenie bolo vo formáte JSON, premýšľal som, prečo je ten istý program, rovnaký konfiguračný súbor, prečo je formát výstupných dát odlišný, aj keď je predvolený výstupný json alebo xml zrozumiteľný, prečo sú rôzne prehliadače, výstupný formát je iný, Po istom pátraní som konečne zistil dôvod

Po testovaní sa zistilo, že dáta vrátené používaním prehliadača IE sú json, zatiaľ čo Firefox a Chrome sú xml, a zistilo sa, že IE nemá typ "application/xml" v porovnaní s Firefoxom a Chrome, keď sa vyskytujú HTTP požiadavky. Predvolené sú teda json formátované dáta, zatiaľ čo Firefox a Chrome posielajú prijateľné xml typy, takže xml dáta sa vracajú, a nasleduje požiadavková hlavička IE, Firefoxu a Chrome


Prijať sa zobrazuje iba v Požiadavkách

Čo to znamená: Typ médií, ktoré sú prijateľné na strane prehliadača


Napríklad Accept: text/html znamená, že prehliadač môže akceptovať typ postbacku zo servera ako text/html, čo sa bežne označuje ako html dokumenty

Ak server nemôže vrátiť údaje typu text/html, mal by vrátiť chybu 406 (neprijateľné)

Žolík * predstavuje akýkoľvek typ

Napríklad Accept: */* znamená, že prehliadač zvládne všetky typy (zvyčajne prehliadač toto odosiela serveru)

Napríklad Accept: text/* znamená, že všetky podtriedy textu sú prijateľné

Accept môže podporovať viacero typov oddelení

Napríklad, Akceptovať: audio/*; Q=0.2, audio/basic znamená, že prehliadače preferujú audio/základné mediálne typy, ale ak tento typ nemajú, môžu sa použiť aj iné audio typy

Tu sa objavuje q=0,2, čo je hodnota reprezentujúca stupeň asociácie, a predvolená hodnota je jedna, usporiadaná od najväčšieho po najmenšie

Napríklad Akceptovať: text/plain; q=0,5, text/html, text/x-dvi; q=0,8, text/x-c

Prijateľné typy priorít sú nasledovné

1) text/html text/x-c

2) text/x-dvi

3) text/obyčajné

q je hodnota medzi 0-1, predvolená hodnota q je 1 a q=0 znamená neprijateľné



Nakoniec výsledky testov:

prehliadačNávrat k formátovaniu  Hlavička prijať požiadavku
iejsontext/html, application/xhtml+xml, */*
Chrómxmltext/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,*/*



Pokračujte v nasledujúcich testoch

1. Iba Accept:application/json je odoslaný a výsledok je vrátený json

2. Odosiela sa iba Accept:application/xml a výsledok vráti xml

3. Odoslať akceptovať: aplikáciu/xml a aplikáciu/json súčasne a výsledok vráti json

4. Odoslať accept:application/json a application/xml súčasne a výsledok vráti json

5. Upraviť prioritu a odoslať aplikáciu/xml súčasne. q=1.0,application/json; q=0,9 a výsledok vrátil xml

Z toho možno vyvodiť:

Typ návratových dát WebAPI je určený prijatím hlavičky požiadavky a predvoleným typom návratu je json
1. Ak neexistujú ani application/json, ani application/xml, vráťte json dáta
2. Keď je k dispozícii iba aplikácia/json, vráťte json dáta
3. Keď je k dispozícii iba application/xml, xml dáta sa vrátia
4. Keď je aplikácia/json a aplikácia/json súčasne, vrátený dátový typ je irelevantný pre ich poradie, ak majú rovnakú prioritu, vráti sa json, a ak je priorita odlišná, vráti sa typ s vyššou prioritou



Prijať hlavuTyp návratu
application/jsonjson
application/xmlxml
application/xml,application/jsonjson
application/json,application/xmljson
aplikácia/xml; q=1.0,application/json; q=1.0json
aplikácia/xml; q=0,9,application/json; q=0,9json
aplikácia/xml; q=1.0,application/json; q=0,9xml
aplikácia/xml; q=0,9,application/json; q=1.0json


Ako je uvedené nižšie:





Predchádzajúci:python3 implementuje horizontálne rozdeľovanie tabuliek s paralelným prístupom
Budúci:.Net MVC implementuje dlhé dotazovanie
Zverejnené 30. 11. 2017 11:06:08 |
Je to úžasné, túto situáciu som už zažil, ale nepremýšľal som prečo
 Prenajímateľ| Zverejnené 30. 11. 2017 11:07:36 |
QWERTYU Zverejnené 30.11.2017 11:06
Je to úžasné, túto situáciu som už zažil, ale nepremýšľal som prečo

Odporúča sa odrádzať od vrátenia XML formátu, pretože v niektorých prípadoch je vrátenie formátu JSON normálne a vrátenie XML formátu vyvoláva výnimku

Napríklad, ak je return hodnota objekt, formát return JSON je normálny a return XML formát hlási chybu
Zverejnené 25. 4. 2018 8:50:44 |
Prednáška je veľmi podrobná a obsahuje vedomostné body, ďakujem, boli zhromaždené
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com