Die beste Praxis des Rest -API -Aufrufs in der Rest -API in der C#
Einführung
In diesem Artikel wird erläutert, wie die Rest -API in C#aufgerufen wird und das Problem der unaussprechlichen abnormalen Blöcke löst.
ursprünglicher Code und Probleme
Der ursprüngliche Code verwendet die -Klasses, um eine Postanforderung an die Rest -API zu senden. Der abnormale Block scheint jedoch umgangen zu werden, was zu Fehlermeldungen nicht angezeigt werden kann.
Verwenden von ASP.NET -Web -API -Client -Bibliotheksverbesserungsplan HttpWebRequest
Dieser Verbesserungsplan verwendet die
-Klasse, die den Prozess der Verwendung von HTTP -basierten Diensten und Verarbeitungsantwort vereinfacht. Es enthält eine explizite abnormale Behandlung und verwendetAussagen, um sicherzustellen, dass die
-Schelle korrekt freigegeben wird. Die Verwendung asynchroner Methoden vermeidet auch die Programmierung. Dem Code wird eine Ausgabe für die Ausgabe von Fehlerinformationen für Fehler hinzugefügt, und es wird empfohlen, eine Fehlerverarbeitung mit höherer Ebene durchzuführen.<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语句自动释放资源 { 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($"HTTP请求失败: 状态码 {(int)response.StatusCode} - {response.ReasonPhrase}"); // 更高级的错误处理,例如记录日志或抛出自定义异常 } } catch (HttpRequestException ex) { Console.WriteLine($"HTTP请求异常: {ex.Message}"); // 更高级的错误处理,例如记录日志或显示用户友好的错误信息 } catch (Exception ex) { Console.WriteLine($"发生未知异常: {ex.Message}"); // 记录日志或显示用户友好的错误信息 } } } } }</code>
<:> Hinweis: HttpClient
using
HttpClient
Instanzen für mehrere Anfragen wiederzuverwenden. Befolgen Sie den "Entsäulenmodus". Die beste Praxis besteht darin, die
-Antage zu verwenden oder den Kunden manuell freizugeben, nachdem alle Anfragen abgeschlossen sind. In diesem Beispiel wurde die -Anweisung verwendet.HttpClient
) kann die Programmleistung verbessern und vermeiden, den Hauptfaden zu blockieren. HttpClient
using
using
Diese Revisionsantwort bietet eine robustere und effizientere Lösung, die potenzielle Ausnahmen und Verbesserung der Verbesserung des Aufgehensinginginginginginginginginginginginginginginging für das Verbesserung von Misserfolgerninginginginginginginging -Lösung darstellt, das das Traginginginginginginging -Zitieren des Zitierens zum Aufführen des Zitierensinginginginginginginginginginginginges zum Aufführen des Zitierensinginginginginginginginginging zum Aufführen des Zitierens des Zitierens des Zitierens des Zitierens des Zitierens des Zitierens des Zitierens des Zitierens macht das Erliegeninginginginginginginginginginginginginginginginging zum Verbesserunginginginginginginginginginging -AusgangDas obige ist der detaillierte Inhalt vonWie kann man mit Ausnahmen ordnungsgemäß umgehen, wenn REST -API -Aufrufe in C#aufgerufen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!