Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 24777|Odpověď: 3

[WebAPI] WebAPI přizpůsobuje formát návratových dat

[Kopírovat odkaz]
Zveřejněno 30.11.2017 11:00:16 | | | |
V poslední době, když používám WebAPI, prohlížeč přistupuje k WebAPI a výchozí je XML formát, myslím, že tento vrácený datový formát by měl být uživatelem přizpůsobitelný, aby server mohl vracet XML nebo JSON formát, místo serverového kódu pro konfiguraci!



Ačkoliv lze serverový kód nastavit, nemyslím si, že to byl původní záměr WebAPI.

1. Jaký typ dat WebAPI vrací ve výchozím nastavení, json nebo xml?
2. Jak upravit typ návratových dat WebAPI
Používám IE prohlížeč k požadavku, aby vrácená data byla ve formátu JSON, a formát dat vrácený Firefoxem a Chromem je XML, a pak používám HttpWebRequest k požadavku, že návrat je ve formátu JSON, přemýšlel jsem, proč je stejný program, stejný konfigurační soubor, proč je formát výstupních dat odlišný, i když je výchozí výstupní json nebo xml pochopitelný, proč jsou různé prohlížeče, výstupní formát je jiný, Po nějakém pátrání jsem konečně přišel na důvod

Po testování bylo zjištěno, že data vrácená pomocí prohlížeče IE jsou json, zatímco Firefox a Chrome jsou xml, a zjistilo se, že IE postrádá typ "application/xml" ve srovnání s Firefoxem a Chromem, když dochází k http požadavkům. Výchozí je tedy data ve formátu json, zatímco Firefox a Chrome posílají přijatelné typy xml, takže se vracejí xml data, a následuje záhlaví požadavku IE, Firefoxu a Chrome


Přijmout se objevuje pouze v Žádostech

Co to znamená: Typ médií, který je přijatelný na straně prohlížeče


Například Accept: text/html znamená, že prohlížeč může přijmout typ zpětného příspěvku ze serveru jako text/html, což se běžně označuje jako html dokumenty

Pokud server nemůže vrátit data typu text/html, měl by vrátit chybu 406 (nepřijatelné)

Žolík * představuje jakýkoli typ

Například Přijmout: */* znamená, že prohlížeč zvládne všechny typy (obvykle prohlížeč toto odesílá serveru)

Například Accept: text/* znamená, že všechny podtřídy textu jsou přijatelné

Accept může podporovat více typů oddělení

Například Přijmout: audio/*; Q=0.2, audio/basic znamená, že prohlížeče preferují audio/základní mediální typy, ale pokud tento typ nemají, lze použít i jiné audio typy

Zde se objevuje q=0,2, což je hodnota reprezentující stupeň asociace, a výchozí hodnota je jedna, uspořádaná od největšího po nejmenší

Například Přijmout: text/plain; q=0,5, text/html, text/x-dvi; q=0,8, text/x-c

Přijatelné typy priorit jsou následující

1) text/html text/x-c

2) text/x-dvi

3) text/prostý

q je hodnota mezi 0-1, výchozí hodnota q je 1 a q=0 znamená nepřijatelné



Nakonec výsledky testu:

prohlížečNávrat k formátování  Hlavička přijmout požadavek
iejsontext/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,*/*



Pokračujte v následujících testech

1. Pouze přijmi: application/json je odeslán a výsledek je vrácen json

2. Odesláno je pouze přijmout:application/xml a výsledek vrací xml

3. Odeslat přijmout: aplikaci/xml a aplikaci/json současně a výsledek vrátí json

4. Pošlete accept:application/json a application/xml současně a výsledek vrátí json

5. Upravit prioritu a zároveň odesílat aplikaci/xml. q=1.0,application/json; q=0,9 a výsledek vrátil xml

Z toho lze vyvodit:

Typ return dat WebAPI je určen přijetím hlavičky požadavku a výchozím typem return je json
1. Pokud neexistují ani application/json, ani application/xml, vraťte json data
2. Když je k dispozici pouze application/json, vraťte json data
3. Když je k dispozici pouze application/xml, jsou vrácena xml data
4. Pokud jsou současně aplikace/json a aplikace/json, vrácený datový typ je pro pořadí těchto dvou irelevantní; pokud mají oba stejnou prioritu, vrací se json, a pokud je priorita odlišná, vrací se typ s vyšší prioritou



Přijmi hlavuTyp návratu
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


Jak je uvedeno níže:





Předchozí:python3 implementuje horizontální rozdělovací tabulky s paralelním přístupem
Další:.Net MVC implementuje dlouhé dotazování
Zveřejněno 30.11.2017 11:06:08 |
Je to úžasné, už jsem tu situaci zažil, ale nenapadlo mě proč
 Pronajímatel| Zveřejněno 30.11.2017 11:07:36 |
QWERTYU Zveřejněno 30. 11. 2017 11:06
Je to úžasné, už jsem tu situaci zažil, ale nenapadlo mě proč

Doporučuje se odrazovat od vracení XML formátu, protože v některých případech je návrat formátu JSON běžný a vrácení XML formátu vyvolává výjimku

Například pokud je návratová hodnota objekt, formát return JSON je normální a formát return XML hlásí chybu
Zveřejněno 25.04.2018 8:50:44 |
Přednáška je velmi podrobná a obsahuje znalosti – děkuji, byly shromážděny
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com