<:> Soalan:
Saya menghadapi masalah apabila saya menggunakan kod berikut untuk melaksanakan permintaan pos. Nampaknya ada kesilapan di blok tangkapan, saya tidak dapat menemuinya. Bolehkah anda menolong saya menghapuskan kesalahan?
Jawapan:
<code class="language-csharp">using System; using System.IO; using System.Net; using System.Text; class Class1 { private const string URL = "https://sub.domain.com/objects.json?api_key=123"; private const string DATA = @"{""object"":{""name"":""Name""}}"; static void Main(string[] args) { Class1.CreateObject(); } private static void CreateObject() { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); request.Method = "POST"; request.ContentType = "application/json"; request.ContentLength = DATA.Length; StreamWriter requestWriter = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII); requestWriter.Write(DATA); requestWriter.Close(); try { WebResponse webResponse = request.GetResponse(); Stream webStream = webResponse.GetResponseStream(); StreamReader responseReader = new StreamReader(webStream); string response = responseReader.ReadToEnd(); Console.Out.WriteLine(response); responseReader.Close(); } catch (Exception e) { Console.Out.WriteLine("-----------------"); Console.Out.WriteLine(e.Message); } } }</code>
Walaupun kod yang disediakan secara berkesan dihantar dengan permintaan pos, ia tidak betul mengendalikan keabnormalan yang berpotensi. Untuk menyelesaikan masalah ini, sila gunakan kelas , yang secara khusus menguruskan keabnormalan yang berkaitan dengan permintaan web. Berikut adalah versi kod yang dikemas kini:
Dengan menggunakan kelas , anda boleh menangkap dan memproses sebarang keabnormalan yang mungkin berlaku semasa permintaan web, dengan itu menyediakan mesej ralat maklumat yang lebih spesifik dan lebih banyak. Kod yang lebih baik juga mengandungi cek, yang boleh mendapatkan maklumat ralat yang lebih terperinci dari pelayan. Gunakan pernyataan untuk memastikan penutupan yang betul dan elakkan kebocoran sumber. WebException
Atas ialah kandungan terperinci Bagaimana Mengendalikan Pengecualian Dengan Betul Apabila Membuat Permintaan POST dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!