Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

सी # का उपयोग कर अन्य अनुप्रयोगों से Asp.Net WebAPI एंडपॉइंट्स का उपभोग कैसे करें?

एचटीपी क्लाइंट क्लास यूआरएल से HTTP अनुरोध/प्रतिक्रिया भेजने/प्राप्त करने के लिए बेस क्लास प्रदान करता है। यह .NET ढांचे की एक समर्थित एसिंक सुविधा है। HttpClient कई समवर्ती अनुरोधों को संसाधित करने में सक्षम है। यह HttpWebRequest और HttpWebResponse पर एक परत है। HttpClient के साथ सभी विधियां अतुल्यकालिक हैं। HttpClient System.Net.Http नेमस्पेस में उपलब्ध है।

आइए हम एक छात्र नियंत्रक और संबंधित क्रियाविधियों वाला एक वेबएपीआई एप्लिकेशन बनाएं।

छात्र मॉडल

namespace DemoWebApplication.Models{
   public class Student{
      public int Id { get; set; }
      public string Name { get; set; }
   }
}

छात्र नियंत्रक

using DemoWebApplication.Models;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace DemoWebApplication.Controllers{
   public class StudentController : ApiController{
      List<Student> students = new List<Student>{
         new Student{
            Id = 1,
            Name = "Mark"
         },
         new Student{
            Id = 2,
            Name = "John"
         }
      };
      public IEnumerable<Student> Get(){
         return students;
      }
      public Student Get(int id){
         var studentForId = students.FirstOrDefault(x => x.Id == id);
         return studentForId;
      }
   }
}

सी # का उपयोग कर अन्य अनुप्रयोगों से Asp.Net WebAPI एंडपॉइंट्स का उपभोग कैसे करें?

सी # का उपयोग कर अन्य अनुप्रयोगों से Asp.Net WebAPI एंडपॉइंट्स का उपभोग कैसे करें?

अब, एक कंसोल एप्लिकेशन create बनाएं जहां हम छात्र विवरण प्राप्त करने के लिए उपरोक्त बनाए गए वेबएपी एंडपॉइंट्स का उपभोग करना चाहते हैं।

उदाहरण

using System;
using System.Net.Http;
namespace DemoApplication{
   public class Program{
      static void Main(string[] args){
         using (var httpClient = new HttpClient()){
            Console.WriteLine("Calling WebApi for get all students");
            var students = GetResponse("student");
            Console.WriteLine($"All Students: {students}");
            Console.WriteLine("Calling WebApi for student id 2");
            var studentForId = GetResponse("student/2");
            Console.WriteLine($"Student for Id 2: {students}");
            Console.ReadLine();
         }
      }
      private static string GetResponse(string url){
         using (var httpClient = new HttpClient()){
            httpClient.BaseAddress = new Uri("https://localhost:58174/api/");
            var responseTask = httpClient.GetAsync(url);
            var result = responseTask.Result;
            var readTask = result.Content.ReadAsStringAsync();
            return readTask.Result;
         }
      }
   }
}

आउटपुट

Calling WebApi for get all students
All Students: [{"Id":1,"Name":"Mark"},{"Id":2,"Name":"John"}]
Calling WebApi for student id 2
Student for Id 2: {"Id":2,"Name":"John"}

उपरोक्त उदाहरण में हम देख सकते हैं कि WebApi के एंडपॉइंट्स को अलग कंसोल एप्लिकेशन से कॉल किया जाता है।


  1. हम C# ASP.NET WebAPI में क्रिया विधि के लिए उपनाम नाम कैसे निर्दिष्ट कर सकते हैं?

    नियंत्रक में सार्वजनिक विधि को क्रिया विधि कहा जाता है। आइए एक उदाहरण पर विचार करें जहां डेमोकंट्रोलर वर्ग एपीकंट्रोलर से लिया गया है और इसमें कई क्रिया विधियां शामिल हैं जिनके नाम HTTP क्रियाओं जैसे गेट, पोस्ट, पुटैंड डिलीट से मेल खाते हैं। उदाहरण public class DemoController : ApiController{  

  1. C# ASP.NET WebAPI में CORS समस्या को कैसे हल करें?

    क्रॉस-ओरिजिनल रिसोर्स शेयरिंग (सीओआरएस) एक ऐसा तंत्र है जो ब्राउज़र को एक मूल पर चलने वाले वेब एप्लिकेशन को एक अलग मूल से चयनित संसाधनों तक पहुंच देने के लिए अतिरिक्त HTTP शीर्षलेखों का उपयोग करता है। एक वेब एप्लिकेशन एक क्रॉस-ओरिजिनल HTTP अनुरोध को तब निष्पादित करता है जब वह ऐसे संसाधन का अनुरोध कर

  1. सी # एएसपी.नेट वेबएपीआई में किसी क्रिया विधि से कस्टम परिणाम प्रकार कैसे वापस करें?

    हम IHttpActionResult इंटरफ़ेस . को लागू करके परिणाम प्रकार के रूप में अपना स्वयं का कस्टम वर्ग बना सकते हैं . IHttpActionResult में एक ही विधि है, ExecuteAsync, जो अतुल्यकालिक रूप से एक HttpResponseMessage उदाहरण बनाता है। public interface IHttpActionResult {    Task<HttpResponseMessag