Heim > Backend-Entwicklung > C++ > Wie kann ich C# verwenden, um REST-APIs zu nutzen und potenzielle Ausnahmen zu behandeln?

Wie kann ich C# verwenden, um REST-APIs zu nutzen und potenzielle Ausnahmen zu behandeln?

Linda Hamilton
Freigeben: 2025-01-25 14:57:11
Original
888 Leute haben es durchsucht

How Can I Use C# to Consume REST APIs and Handle Potential Exceptions?

c# rest api aufrufen Methode

RESTFORE Web -API -Vorsichtsmaßnahmen

Bei der Verwendung der erholsamen Web -API sollte beachtet werden, dass die alte WCF -Web -API durch ASP.NET -Web -API ersetzt wurde. Um den erholsamen Dienst zu nutzen, empfiehlt Microsoft die Verwendung der Microsoft ASP.NET -Web -API -Client -Bibliothek.

Erstellen Sie einen REST -API -Aufruf in C#

Folgendes ist ein Beispiel für die Aktualisierung mit der ASP.NET -Web -API -Client -Bibliothek:

abnormale Behandlung

<code class="language-csharp">using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;

namespace ConsoleProgram
{
    public class DataObject
    {
        public string Name { get; set; }
    }

    public class Class1
    {
        private const string URL = "https://sub.domain.com/objects.json";
        private string urlParameters = "?api_key=123";

        static void Main(string[] args)
        {
            using (HttpClient client = new HttpClient()) // 使用using语句确保HttpClient被正确释放
            {
                client.BaseAddress = new Uri(URL);

                // 添加JSON格式的Accept头。
                client.DefaultRequestHeaders.Accept.Add(
                    new MediaTypeWithQualityHeaderValue("application/json"));

                try
                {
                    // 使用异步方法避免阻塞调用
                    var response = client.GetAsync(urlParameters).Result;

                    if (response.IsSuccessStatusCode)
                    {
                        // 解析响应体。
                        var dataObjects = response.Content.ReadAsAsync<IEnumerable<DataObject>>().Result;
                        foreach (var d in dataObjects)
                        {
                            Console.WriteLine("{0}", d.Name);
                        }
                    }
                    else
                    {
                        Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
                    }
                }
                catch (HttpRequestException e)
                {
                    Console.WriteLine($"HTTP请求异常:{e.Message}");
                }
                catch (Exception e)
                {
                    Console.WriteLine($"发生异常:{e.Message}");
                }
            }
        }
    }
}</code>
Nach dem Login kopieren

In dem zuvor bereitgestellten Code, den Sie zuvor angegeben haben, können Sie feststellen, dass der abnormale Verarbeitungsblock nicht funktioniert. Dies liegt daran, dass wir keine WebException geworfen haben. Bei Verwendung der ASP.NET -Web -API -Client -Bibliothek wird die Ausnahme als httprequestException ausgelegt. Um die neue Bibliothek für Abnormalitäten zu verwenden, können Sie den Try-Catch-Block verwenden, wie unten gezeigt:

BESTELLUNGSPLEIBUNG: Die

-Anweisung wird verwendet, um die asynchrone Methode zur Verbesserung der Programmeffizienz zu vermeiden, um die Ressourcen zu verbessern. Erfassen Sie mehr Arten von Anomalien und bieten Sie eine klarere abnormale Informationsausgabe. Der Code hat auch den Rechtschreibfehler behoben.

Das obige ist der detaillierte Inhalt vonWie kann ich C# verwenden, um REST-APIs zu nutzen und potenzielle Ausnahmen zu behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage