Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 3324|Vastaus: 0

[Lähde] ASP.NET Core(23) API-rajapinta NULL palauttaa HTTP 204 -tilakoodin

[Kopioi linkki]
Julkaistu 20.8.2023 15.27.55 | | | |
Vaatimukset: Käytä ASP.NET Core 6:ta luodaksesi uuden Web API -projektin ulkoisten palveluiden tarjoamiseksi, rajapinta voi palauttaa tyhjän objektin tai tyhjän merkkijonon, jos se palauttaa NULLin, rajapinnan vastaus on: 204 Ei sisältöä, vaikka 204 edustaa normaalia vastauskoodia (siinä ei ole mitään vikaa), mutta,Jotkut kapseloidut HTTP-kehykset pitävät normaalina vain 200 statuskoodia。 Vaihda siis 204-tilakoodi 200-tilakoodiksi.

Rajapintakoodi:

Testi on esitetty alla:



Rajapinta palauttaa HTTP 204 No Content -tilakoodin, koska ASP.NET Coressa on oletuksena lisätty neljä ulostulomuotoilun toteutusta:

  • Microsoft.AspNetCore.Mvc.Formatters.HttpNoContentOutputFormatter
  • Microsoft.AspNetCore.Mvc.Formatters.StringOutputFormatter
  • Microsoft.AspNetCore.Mvc.Formatters.StreamOutputFormatter
  • Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter


HttpNoContentOutputFormatterin lähdekoodi on seuraava:



Muistiinpano:Jos rajapinta palauttaa void-tyypin, Task palauttaa HTTP 200 -tilakoodinkoska se ei mene CanWriteResult-menetelmään HttpNoContentOutputFormatterissa!! siihenJos CanWriteResult-metodi palauttaa tosi, se menee WriteAsyncin kauttaMenetelmä.





ratkaisu

Poista HttpNoContentOutputFormatter -toteutusluokka OutputFormatters-kokoelmasta seuraavalla koodilla:

Avaa rajapinta uudelleen, testaa seuraavasti:

Palautustyyppi on merkkijono?, palauttaa 200-statuskoodin, eikä sillä ole lähtöä
Palautustyyppi on object?, palauttaa 200 statuskoodin ja tuottaa null

(Loppu)




Edellinen:Docker-kontti perustuu aspnet:6.0:aan ping-työkalun asentamista varten
Seuraava:Windows Edge -selain avaa kaatumisratkaisun IE:llä
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com