Rumah pangkalan data tutorial mysql 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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah kad grafik terbaik untuk i7 3770? Apakah kad grafik terbaik untuk i7 3770? Dec 29, 2023 am 09:12 AM

Apakah kad grafik yang baik untuk Core i73770 ialah kad grafik yang sangat berkuasa dengan prestasi cemerlang dan teknologi canggih. Sama ada anda bermain permainan, memaparkan grafik atau melakukan pembelajaran mesin, RTX3070 boleh mengendalikannya dengan mudah. Ia menggunakan seni bina Ampere NVIDIA, mempunyai teras CUDA 5888 dan memori GDDR6 8GB, yang boleh memberikan pengalaman permainan yang lancar dan kesan grafik berkualiti tinggi. RTX3070 juga menyokong teknologi pengesanan sinar, yang boleh memberikan kesan cahaya dan bayang yang realistik. Secara keseluruhannya, RTX3070 ialah kad grafik yang berkuasa dan canggih yang sesuai untuk mereka yang mengejar prestasi tinggi dan kualiti tinggi. RTX3070 ialah kad grafik siri NVIDIA. Menggunakan NVID generasi ke-2

Bolehkah generasi i7 dipasang dengan win11? Bolehkah generasi i7 dipasang dengan win11? Dec 30, 2023 pm 11:40 PM

Seperti yang kita semua tahu, terdapat sekatan peranti pada pemasangan win11, dan sekatan seperti permulaan uefi ditetapkan pada CPU Jadi bolehkah generasi i7 yang paling awal memasang win11, sebenarnya, secara teorinya mungkin, tetapi pemasangan tidak disyorkan. Bolehkah generasi i7 dipasang dengan win11: Jawapan: Generasi i7 boleh dipasang dengan win11, tetapi jika konfigurasi terlalu rendah, ia akan membeku, jadi tidak disyorkan untuk memasang win11 1. Win11 mengehadkan CPU terutamanya disebabkan oleh keperluan untuk permulaan uefi dan isu tpm2.0. 2. Tetapi ini hanya akan menyekat kami daripada menerima tolak kemas kini dalam sistem seperti biasa, dan tidak akan menyekat sistem PE. 3. Jadi kita hanya perlu menggunakan pemacu kilat USB untuk memuat turun win11 dan memasang win11 dalam pe. 4. Walau bagaimanapun, apabila menjalankan win11,

Bagaimana Nginx menyelesaikan masalah permintaan sekunder merentas domain WebApi dan halaman tunggal Vue Bagaimana Nginx menyelesaikan masalah permintaan sekunder merentas domain WebApi dan halaman tunggal Vue May 15, 2023 am 09:28 AM

1. Pengenalan Memandangkan projek dipisahkan dari bahagian hadapan dan hujung belakang, antara muka api dan hujung hadapan web digunakan di tapak yang berbeza, jadi dalam artikel sebelumnya, penyelesaian permintaan merentas domain webapiajax (pelaksanaan cors) menggunakan domain silang pemprosesan dan bukannya jsonp. Tetapi selepas satu tempoh masa, saya menemui masalah yang sangat pelik Setiap kali bahagian hadapan memulakan permintaan, melalui alat pembangun penyemak imbas, saya dapat melihat bahawa terdapat dua permintaan untuk URL yang sama di bawah rangkaian permintaan ialah pilihan, kaedah permintaan kedua ialah perolehan atau pos sebenar, dan permintaan pertama tidak mengembalikan data, dan permintaan kedua mengembalikan data biasa. 2. Sebab untuk pilihan pertama

Adakah lebih baik memasang sistem win7 atau win10 pada i5? Adakah lebih baik memasang sistem win7 atau win10 pada i5? Dec 23, 2023 pm 12:43 PM

Jika pemproses komputer kami ialah pemproses i5, dan kami ingin memasang semula sistem komputer, editor berpendapat bahawa kami harus membuat pertimbangan yang relevan berdasarkan keperluan konfigurasi perkakasan sistem Adakah lebih baik memasang sistem win7 atau win10 pada i5? Hanya yang sesuai dengan anda dari segi konfigurasi perkakasan dan keperluan peribadi adalah yang terbaik. Mari kita lihat apa yang dikatakan oleh editor untuk butirannya~ Saya harap ia dapat membantu anda. Adakah lebih baik memasang sistem win7 atau win10 pada i5 Jawapan: Lebih baik memasang sistem win10 pada pemproses i5 sekarang? 1. Setakat sistem win7 dan win10 kini digunakan oleh kebanyakan pengguna, sebenarnya, keperluan konfigurasi kedua-dua sistem adalah serupa. 2. Oleh itu, dari segi prestasi, kelancaran dan kebolehgunaan, sistem win10 adalah lebih baik daripada win7

Pemproses terbaharu Intel i9-14900K menyerlah dalam ujian Geekbench, menerajui prestasi generasi baharu! Pemproses terbaharu Intel i9-14900K menyerlah dalam ujian Geekbench, menerajui prestasi generasi baharu! Sep 22, 2023 pm 03:41 PM

Menurut berita pada 6 September, Intel akan melancarkan siri pemproses Raptor Lake Refresh generasi baharu bulan ini. Berita terkini menunjukkan bahawa model perdana siri ini, Core i9-14900K, berprestasi cemerlang dalam ujian teras tunggal Geekbench6.1.0, mencapai skor 3121. Berbanding dengan generasi sebelumnya 13900K, keputusan ini telah meningkat sebanyak kira-kira 6%. Dari segi prestasi berbilang teras, walaupun ia sedikit lebih rendah daripada generasi sebelumnya, ia juga menunjukkan potensi pengkomputeran yang kukuh. Mengikut pemahaman editor, prestasi pemproses Core i9-14900K mendapat manfaat daripada reka bentuk inovatifnya. Pemproses menggunakan 8 teras P dan 16 teras E, memanfaatkan sepenuhnya seni bina berbilang teras. Perlu dinyatakan bahawa pemproses ini juga memperkenalkan Th

Bolehkah i33240 menyokong dan memasang Windows 11: Analisis terperinci Bolehkah i33240 menyokong dan memasang Windows 11: Analisis terperinci Jan 03, 2024 am 10:34 AM

i33240 ialah pemproses Intel yang sangat klasik Pada asasnya, model komputer lama masih menggunakan pemproses ini. Oleh itu, sekarang apabila win11 akan dilancarkan, pengguna peranti lama ini tidak tahu sama ada komputer mereka boleh memasang sistem win11 Secara umumnya, ia boleh dilihat bersama. Bolehkah win11 dipasang pada i33240 Jawapan: Win11 boleh dipasang pada i33240, tetapi ia mesti dipasang dalam pe. 1. Walaupun Microsoft sebelum ini telah menyatakan bahawa hanya pemproses Intel generasi kelapan dan ke atas boleh memasang sistem win11. 2. Tetapi sebenarnya, keperluan ini hanyalah pengesanan sistem oleh Microsoft, dan ia tidak akan menjejaskan penggunaan biasa selepas pemasangan. 3. Jadi selagi kita boleh melangkau pengesanan sistem, kita boleh gunakan

Ambil stok beberapa petua Linux praktikal Ambil stok beberapa petua Linux praktikal Mar 12, 2024 pm 01:49 PM

Linux ialah sistem pengendalian yang berkuasa dengan banyak arahan dan petua berguna untuk membantu anda menggunakannya dengan lebih cekap. 1. Semak nilai semakan fail Semasa penyalinan atau proses penghantaran, fail mungkin rosak atau diubah suai Dalam kes ini, nilai semakan boleh digunakan untuk pengesahan. Biasanya, kami perlu menggunakan beberapa program antara muka yang disediakan oleh pasukan lain dalam kerja kami. Setiap kali keputusan berjalan program ini tidak seperti yang diharapkan, kami akan membandingkan nilai semakan md5 kedua-dua pihak untuk mengesahkan ketekalan data. Terdapat banyak cara untuk menjana nilai semakan fail yang biasa digunakan termasuk semakan md5sum, semakan crc, semakan jumlah, dll. Perintahnya ialah: fail parameter algoritma md5sumfile_namecksumfile_namesum

Bagaimana Nginx menyelesaikan masalah permintaan sekunder merentas domain WebApi dan halaman tunggal Vue Bagaimana Nginx menyelesaikan masalah permintaan sekunder merentas domain WebApi dan halaman tunggal Vue May 22, 2023 pm 10:03 PM

1. Pengenalan Memandangkan projek dipisahkan dari bahagian hadapan dan hujung belakang, antara muka api dan hujung hadapan web digunakan di tapak yang berbeza, jadi dalam artikel sebelumnya, penyelesaian permintaan merentas domain webapiajax (pelaksanaan cors) menggunakan domain silang pemprosesan bukannya jsonp. Tetapi selepas satu tempoh masa, saya menemui masalah yang sangat pelik Setiap kali bahagian hadapan memulakan permintaan, melalui alat pembangun penyemak imbas, saya dapat melihat bahawa terdapat dua permintaan untuk URL yang sama di bawah rangkaian permintaan ialah pilihan, kaedah permintaan kedua ialah perolehan atau pos sebenar, dan permintaan pertama tidak mengembalikan data, dan permintaan kedua mengembalikan data biasa. 2. Sebab untuk pilihan pertama

See all articles