Heim Datenbank MySQL-Tutorial IHttpActionResult(webAPI 2.0) instead of HttpResponseMessag

IHttpActionResult(webAPI 2.0) instead of HttpResponseMessag

Jun 07, 2016 pm 03:48 PM
i webapi

Hi all, I hope everyone is fine, me too. I am being amazed day by day by seeing new features and improvements to MVC from Microsoft. If you have had hands-on experience with MVC and the Web API then you are very familiar with HTTP response

Hi all, I hope everyone is fine, me too. I am being amazed day by day by seeing new features and improvements to MVC from Microsoft. If you have had hands-on experience with MVC and the Web API then you are very familiar with HTTP responses from the Web API.

If we remember the HTTP response creation of Web API 1.0 we used to use write 3 to 4 lines of code to create one full fledge HTTP response by setting the status code and media type with an appropriate message. The style is something like this.

  1. var response = new HttpResponseMessage(HttpStatusCode.Unauthorized);  
  2. var tsc = new TaskCompletionSource();  
  3. tsc.SetResult(response);  
  4. return tsc.Task;  
This code snippet will return one Unauthorized HTTP response (haha.. not an unauthorized response, but HTTP response of unauthorized type) asynchronously. Now, if we want to change the response type then obviously we must change the status code.

Fine and simple but it is simpler in the Web API 2. We can create the same kind of response with a single line of code. 

Here you will see how the ASP.NET Web API converts the return value from a controller into an HTTP response message. 

Please note that the feature is available in Web API 2.0, so please ensure that your application is updated to 2.0 versions before trying the following code. We know that a Web API controller action can return any one of the following.

 

  • Void
  • HttpResponseMessage
  • IHttpActionResult (new in Web API 2.0)
  • Some other data type

Now in today's article we will see the third point with an example. To use IHttpResult in your application, you must include “System.WebHttp” and provide a reference of the “system.Web.Http” assembly. 

The interface IHttpActionResult contains one any only one method called “ExecuteAsync”. Here is the definition of the interface:

  1. public interface IHttpActionResult  
  2. {  
  3.    Task ExecuteAsync(CancellationToken cancellationToken);  
  4. }  
Fine, now let's see how to return a HTTP Response from the controller with a single line of code using the interface. Have a look at the following example.

  1. public class personController : ApiController  
  2. {  
  3.    public IHttpActionResult Get()  
  4.    {  
  5.       return Ok();  
  6.    }  
  7.   
  8. }  
Here I have implemented a small empty person controller and defined a Get() within it. The Get() method is again empty and returning only Ok and this is the key point of the example. We know that Ok or success is one status type of HTTP and it's code is 200.

So, when we are returning Ok from a controller/action then the Web API runtime engine is transfers the Ok to a full fledge response message by setting the status code 200 with it. Let's see how it works practically. We will call the action from the client and we will check whether or not it returns an Ok response message. Here is the output from Fiddler.

 

IHttpActionResult(webAPI 2.0)  instead of HttpResponseMessag

And we are seeing that the status code is 200 and type is OK. So, now just think how simple it is to create a HTTP response from Web API 2.0.

Ok, you may think, how to embed some value with the HTTP response message? Fine, the next example is for you.

  1. public class personController : ApiController  
  2. {  
  3.    public IHttpActionResult Get()  
  4.    {  
  5.       return Okstring> ("I am send by HTTP resonse");  
  6.    }  
  7.   
  8. }  
We are just returning string a in the message body and the output in Fiddler is something like this.

 

IHttpActionResult(webAPI 2.0)  instead of HttpResponseMessag

Please look that, the response string is coming as a body of HTTP response. Not only string, we can send any complex type of custom data type as a body of the HTTP response message. In the next example we will try to send a list of strings in the body of the response message with an Ok status. Here is our modified code.

  1. public IHttpActionResult Get()  
  2. {  
  3.     Liststring> names = new Liststring> {   
  4.        "Sourav",  
  5.        "Ram"  
  6.     };  
  7.     return Okstring>> (names);  
  8. }  
And the output is in JSON format.


IHttpActionResult(webAPI 2.0)  instead of HttpResponseMessag

Fine, so we have seen how easy it is to create an Ok HTTP response message in the Web API, just by a single line of code. Not only an Ok message, but we can also return any type of valid HTTP response, let's see a few of them.

Not Found

  1. public IHttpActionResult Get()  
  2. {  
  3.    return NotFound();  
  4. }  
Like Ok() , we can return NotFound() , it will return a 404 status code as in the following screen.

IHttpActionResult(webAPI 2.0)  instead of HttpResponseMessag

Bad Request

  1. public IHttpActionResult Get()  
  2. {  
  3.    return BadRequest();  
  4. }  
We know the status code for BadRequest is 400 and once we call the method, we will get the status.

IHttpActionResult(webAPI 2.0)  instead of HttpResponseMessag

Unauthorized

In the same way, we can return an unauthorized status code, here is sample code.

  1. public IHttpActionResult Get()  
  2. {  
  3.    return Unauthorized();  
  4. }  
IHttpActionResult(webAPI 2.0)  instead of HttpResponseMessag

Created


The status code for the Created status is 201 and generally the status is returned when the Post() operation is performed successfully. Created takes two parameters, one is the “uri” and the other is content.

IHttpActionResult(webAPI 2.0)  instead of HttpResponseMessag

Conclusion

In this article we have discussed how to send a HTTP response message with a minimal amount of code. I Hope you have understood this and like it. Happy learning.







http://stackoverflow.com/questions/20903420/how-to-call-asp-net-mvc-webapi-2-method-properly

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist die beste Grafikkarte für i7 3770? Was ist die beste Grafikkarte für i7 3770? Dec 29, 2023 am 09:12 AM

Welche Grafikkarte eignet sich für den Core i73770? Die RTX3070 ist eine sehr leistungsstarke Grafikkarte mit hervorragender Leistung und fortschrittlicher Technologie. Egal, ob Sie Spiele spielen, Grafiken rendern oder maschinelles Lernen durchführen, der RTX3070 kommt damit problemlos zurecht. Es nutzt die Ampere-Architektur von NVIDIA, verfügt über 5888 CUDA-Kerne und 8 GB GDDR6-Speicher, was für ein flüssiges Spielerlebnis und hochwertige Grafikeffekte sorgen kann. RTX3070 unterstützt außerdem die Raytracing-Technologie, die realistische Licht- und Schatteneffekte darstellen kann. Alles in allem ist die RTX3070 eine leistungsstarke und fortschrittliche Grafikkarte, die für diejenigen geeignet ist, die hohe Leistung und hohe Qualität anstreben. RTX3070 ist eine Grafikkarte der NVIDIA-Serie. Verwendung von NVID der 2. Generation

Kann die i7-Generation mit Win11 installiert werden? Kann die i7-Generation mit Win11 installiert werden? Dec 30, 2023 pm 11:40 PM

Wie wir alle wissen, gibt es bei der Installation von Win11 Einschränkungen wie den UEFI-Start. Kann also die früheste i7-Generation Win11 installieren? Die Installation wird jedoch nicht empfohlen. Kann die i7-Generation mit Win11 installiert werden: Antwort: Die i7-Generation kann mit Win11 installiert werden, aber wenn die Konfiguration zu niedrig ist, friert sie ein, daher wird die Installation von Win11 nicht empfohlen. Win11 begrenzt die CPU hauptsächlich aufgrund die Notwendigkeit eines UEFI-Starts und tpm2.0-Probleme. 2. Dies hindert uns jedoch nur daran, den Update-Push im System normal zu erhalten, und schränkt das PE-System nicht ein. 3. Wir müssen also nur einen USB-Stick verwenden, um Win11 herunterzuladen und Win11 in PE zu installieren. 4. Wenn Sie jedoch win11 ausführen,

Intels neuester Prozessor i9-14900K sticht im Geekbench-Test hervor und führt die neue Generation in Sachen Leistung an! Intels neuester Prozessor i9-14900K sticht im Geekbench-Test hervor und führt die neue Generation in Sachen Leistung an! Sep 22, 2023 pm 03:41 PM

Laut Nachrichten vom 6. September wird Intel diesen Monat eine neue Generation der Raptor-Lake-Refresh-Prozessorserie auf den Markt bringen. Die neuesten Nachrichten zeigen, dass das Flaggschiff dieser Serie, der Core i9-14900K, im Single-Core-Test von Geekbench6.1.0 eine hervorragende Leistung erbrachte und eine Punktzahl von 3121 erreichte. Im Vergleich zur vorherigen Generation von 13900K ist dieses Ergebnis um etwa 6 % gestiegen. In Bezug auf die Multi-Core-Leistung ist es zwar etwas schlechter als die Vorgängergeneration, weist aber auch ein starkes Rechenpotenzial auf. Nach Ansicht des Herausgebers profitiert die Leistung des Core i9-14900K-Prozessors von seinem innovativen Design. Der Prozessor nutzt 8 P-Kerne und 16 E-Kerne und nutzt so die Vorteile der Multi-Core-Architektur voll aus. Besonders erwähnenswert ist, dass dieser Prozessor auch Th einführt

Wie Nginx das Problem domänenübergreifender Sekundäranfragen von WebApi und einzelner Vue-Seiten löst Wie Nginx das Problem domänenübergreifender Sekundäranfragen von WebApi und einzelner Vue-Seiten löst May 15, 2023 am 09:28 AM

1. Einführung Da das Projekt vom Front- und Back-End getrennt ist, werden die API-Schnittstelle und das Web-Front-End an verschiedenen Standorten bereitgestellt. Im vorherigen Artikel verwendet die domänenübergreifende Anforderungslösung von webapiajax (Cors-Implementierung) domänenübergreifend Verarbeitung anstelle von JSONP. Aber nach einiger Zeit habe ich ein sehr seltsames Problem entdeckt. Jedes Mal, wenn das Frontend eine Anfrage initiiert, kann ich über die Entwicklertools des Browsers sehen, dass es unter der ersten Methode zwei Anfragen für dieselbe URL gibt Bei der Anfrage handelt es sich um Optionen, die Methode der zweiten Anfrage ist das eigentliche Abrufen oder Posten, und die erste Anfrage gibt keine Daten zurück und die zweite Anfrage gibt normale Daten zurück. 2. Grund für die ersten Optionen

Ist es besser, das Win7- oder Win10-System auf dem i5 zu installieren? Ist es besser, das Win7- oder Win10-System auf dem i5 zu installieren? Dec 23, 2023 pm 12:43 PM

Wenn der Prozessor unseres Computers ein i5-Prozessor ist und wir das System des Computers neu installieren möchten, ist der Herausgeber der Meinung, dass wir basierend auf den Hardwarekonfigurationsanforderungen des Systems entsprechende Überlegungen anstellen sollten. Ist es besser, ein Win7- oder Win10-System zu installieren? auf i5? Nur dasjenige ist das Beste, was von der Hardwarekonfiguration und den persönlichen Bedürfnissen zu Ihnen passt. Werfen wir einen Blick auf die Angaben des Herausgebers, um Einzelheiten zu erfahren. Ich hoffe, es kann Ihnen helfen. Ist es besser, das Win7- oder Win10-System auf einem i5-Prozessor zu installieren? Antwort: Es ist jetzt besser, das Win10-System auf einem i5-Prozessor zu installieren. 1. Da Win7- und Win10-Systeme derzeit von den meisten Benutzern verwendet werden, sind die Konfigurationsanforderungen der beiden Systeme tatsächlich ähnlich. 2. Daher ist das Win10-System in Bezug auf Leistung, Sprachkompetenz und Anwendbarkeit besser als Win7

Kann i33240 Windows 11 unterstützen und installieren: Detaillierte Analyse Kann i33240 Windows 11 unterstützen und installieren: Detaillierte Analyse Jan 03, 2024 am 10:34 AM

Der i33240 ist ein ganz klassischer Intel-Prozessor. Ältere Computermodelle verwenden im Grunde immer noch diesen Prozessor. Daher wissen diese alten Gerätebenutzer jetzt, da Win11 kurz vor dem Start steht, nicht, ob ihre Computer das Win11-System installieren können. Im Allgemeinen ist dies möglich. Kann i33240 Win11 installieren: Antwort: i33240 kann Win11 installieren, muss aber in PE installiert werden. 1. Obwohl Microsoft zuvor erklärt hat, dass nur Intel-Prozessoren der achten Generation und höher das Win11-System installieren können. 2. Tatsächlich handelt es sich bei dieser Anforderung jedoch nur um eine Systemerkennung durch Microsoft und sie hat keinen Einfluss auf die normale Verwendung nach der Installation. 3. Solange wir die Systemerkennung überspringen können, können wir sie verwenden

Wie Nginx das Problem domänenübergreifender Sekundäranfragen von WebApi und einzelner Vue-Seiten löst Wie Nginx das Problem domänenübergreifender Sekundäranfragen von WebApi und einzelner Vue-Seiten löst May 22, 2023 pm 10:03 PM

1. Einführung Da das Projekt vom Front- und Back-End getrennt ist, werden die API-Schnittstelle und das Web-Front-End an verschiedenen Standorten bereitgestellt. Im vorherigen Artikel verwendet die domänenübergreifende Anforderungslösung von webapiajax (Cors-Implementierung) domänenübergreifend Verarbeitung anstelle von JSONP. Aber nach einiger Zeit habe ich ein sehr seltsames Problem entdeckt. Jedes Mal, wenn das Frontend eine Anfrage initiiert, kann ich über die Entwicklertools des Browsers sehen, dass es unter der ersten Methode zwei Anfragen für dieselbe URL gibt Bei der Anfrage handelt es sich um Optionen, die Methode der zweiten Anfrage ist das eigentliche Abrufen oder Posten, und die erste Anfrage gibt keine Daten zurück und die zweite Anfrage gibt normale Daten zurück. 2. Grund für die ersten Optionen

Machen Sie sich mit einigen praktischen Linux-Tipps vertraut Machen Sie sich mit einigen praktischen Linux-Tipps vertraut Mar 12, 2024 pm 01:49 PM

Linux ist ein leistungsstarkes Betriebssystem mit vielen nützlichen Befehlen und Tipps, die Ihnen helfen, es effizienter zu nutzen. 1. Überprüfen Sie den Prüfwert der Datei. Während des Kopier- oder Übertragungsvorgangs kann die Datei beschädigt oder geändert werden. In diesem Fall kann der Prüfwert zur Überprüfung verwendet werden. Normalerweise müssen wir bei unserer Arbeit einige Schnittstellenprogramme verwenden, die von anderen Teams bereitgestellt werden. Wenn die Ausführungsergebnisse dieser Programme nicht den Erwartungen entsprechen, vergleichen wir die MD5-Prüfwerte beider Parteien, um die Konsistenz der Daten zu bestätigen. Es gibt viele Möglichkeiten, den Prüfwert einer Datei zu generieren. Zu den häufig verwendeten gehören die MD5-Summenprüfung, die CRC-Prüfung, die Summenprüfung usw. Die Befehle lauten: md5sumfile_namecksumfile_namesum-Algorithmus-Parameterdatei

See all articles