Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 24777|Svare: 3

[WebAPI] WebAPI tilpasser returdataformatet

[Kopier lenke]
Publisert på 30.11.2017 11:00:16 | | | |
Nylig, når jeg bruker WebAPI, får nettleseren tilgang til WebAPI, og standarden er XML-format, jeg mener dette returnerte dataformatet bør tilpasses av brukeren, slik at serveren kan returnere XML- eller JSON-format, i stedet for serverkode å konfigurere!



Selv om serverkoden kan konfigureres, tror jeg ikke det var den opprinnelige hensikten med WebAPI.

1. Hvilken datatype returnerer WebAPI som standard, json eller xml?
2. Hvordan endre returdatatypen til WebAPI
Jeg bruker IE-nettleseren for å be om at dataene som returneres er i JSON-format, og dataformatet som returneres av Firefox og Chrome er XML, og så bruker jeg HttpWebRequest for å be om at returen er JSON-format, jeg lurte på, hvorfor er det samme programmet, samme konfigurasjonsfil, hvorfor er utdataformatet forskjellig, selv om standard utdata-json eller xml kan forstås, hvorfor finnes det forskjellige nettlesere, utdataformatet er forskjellig, Etter litt research fant jeg endelig ut grunnen

Etter testing ble det funnet at dataene som returneres ved bruk av IE-nettleseren er json, mens bruk av Firefox og Chrome er xml, og det ble funnet at IE mangler typen "application/xml" sammenlignet med Firefox og Chrome når http-forespørsler oppstår. Så standarden er json-formatdata, mens Firefox og Chrome sender akseptable xml-typer, så xml-data returneres, og følgende er forespørselsheaderen til IE, Firefox og Chrome


Aksepter vises kun i forespørsler

Hva det betyr: Hvilken type media som er akseptabelt på nettlesersiden


For eksempel betyr Accept: text/html at nettleseren kan akseptere typen postback fra serveren som tekst/html, noe som ofte kalles html-dokumenter

Hvis serveren ikke kan returnere data av typen tekst/html, skal serveren returnere en 406-feil (ikke akseptabelt)

Wildcard * representerer en hvilken som helst type

For eksempel betyr Accept: */* at nettleseren kan håndtere alle typer, (vanligvis sender nettleseren dette til serveren)

For eksempel betyr Accept: text/* at alle underklasser av tekst er akseptable

Accept kan støtte flere typer separasjoner

For eksempel, Aksepter: lyd/*; q=0.2, audio/basic betyr at nettlesere foretrekker audio/basic-medietyper, men hvis de ikke har denne typen, kan andre lydtyper også brukes

Her oppstår en q=0,2, som er en verdi som representerer graden av assosiasjon, og standardverdien er én, ordnet fra størst til minste

For eksempel, Aksepter: tekst/klar; q=0,5, tekst/html, tekst/x-dvi; q=0,8, tekst/x-c

De akseptable typeprioriteringene er som følger

1) tekst/html tekst/x-c

2)tekst/x-DVI

3) tekst/ren

q er en verdi mellom 0-1, standardverdien for q er 1, og q=0 betyr ikke-akseptabelt



Til slutt, testresultatene:

nettleserTilbake til formatering  Godkjenn forespørselsheader
ieJSONtekst/html, applikasjon/xhtml+xml, */*
KromXMLtekst/html,applikasjon/xhtml+xml,applikasjon/xml; q=0.9,bilde/webp,bilde/apng,*/*; q=0,8
FirefoxXMLtekst/html,applikasjon/xhtml+xml,applikasjon/xml; q=0,9,*/*; q=0,8,*/*



Fortsett med følgende tester

1. Kun aksept:application/json sendes, og resultatet returneres json

2. Kun aksept:application/xml sendes, og resultatet returnerer xml

3. Send aksept: application/xml og application/json samtidig, og resultatet returnerer json

4. Send accept:application/json og application/xml samtidig, og resultatet returnerer json

5. Endre prioritet og send applikasjon/xml samtidig. q=1.0,application/json; q=0,9, og resultatet returnerte xml

Ut fra dette kan det konkluderes:

Returdatatypen til WebAPI bestemmes av aksept av forespørselshodet, og standard returtype er json
1. Hvis verken application/json eller application/xml eksisterer, returner json-dataene
2. Når kun applikasjon/json er tilgjengelig, returner json-dataene
3. Når kun applikasjon/xml er tilgjengelig, returneres xml-dataene
4. Når det er application/json og application/json samtidig, er den returnerte datatypen irrelevant for rekkefølgen av de to; hvis de to har samme prioritet, returneres json, og hvis prioriteten er forskjellig, returneres typen med høyere prioritet



Ta imot hodeReturtype
applikasjon/JSONJSON
applikasjon/XMLXML
application/xml,application/jsonJSON
application/json,application/xmlJSON
applikasjon/XML; q=1.0,application/json; q=1,0JSON
applikasjon/XML; q=0.9,application/json; q=0,9JSON
applikasjon/XML; q=1.0,application/json; q=0,9XML
applikasjon/XML; q=0.9,application/json; q=1,0JSON


Som vist nedenfor:





Foregående:Python3 implementerer horisontale partisjoneringstabeller med samtidig tilgang
Neste:.Net MVC implementerer lang polling
Publisert på 30.11.2017 11:06:08 |
Det er utrolig, jeg har opplevd denne situasjonen før, men jeg tenkte ikke over hvorfor
 Vert| Publisert på 30.11.2017 11:07:36 |
QWERTYU publisert 30.11.2017 kl. 11:06
Det er utrolig, jeg har opplevd denne situasjonen før, men jeg tenkte ikke over hvorfor

Det anbefales å motvirke å returnere XML-format fordi det i noen tilfeller er normalt å returnere JSON-format, og retur av XML-format gir et unntak

For eksempel, hvis returverdien er objekt, er retur-JSON-formatet normalt, og retur-XML-formatet vil rapportere en feil
Publisert på 25.04.2018 08:50:44 |
Forelesningen er veldig detaljert, og det er kunnskapspunkter, takk, den er samlet
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com