在C#中進(jìn)行POST提交,一般使用HttpWebRequest類來(lái)實(shí)現(xiàn)。該類提供了可以對(duì)HTTP請(qǐng)求進(jìn)行訪問和控制的方法和屬性。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/json"; string json = "{ \"name\":\"John\", \"age\":30, \"city\":\"New York\" }"; byte[] byteData = Encoding.UTF8.GetBytes(json); request.ContentLength = byteData.Length; using (Stream stream = request.GetRequestStream()) { stream.Write(byteData, 0, byteData.Length); } HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); string result = reader.ReadToEnd(); Console.WriteLine(result); }
上述代碼中,我們首先創(chuàng)建了一個(gè)HttpWebRequest對(duì)象并指定了請(qǐng)求的URL、請(qǐng)求方法和內(nèi)容類型。然后我們將待發(fā)送的JSON數(shù)據(jù)轉(zhuǎn)換成一個(gè)字節(jié)數(shù)組,并設(shè)置請(qǐng)求的ContentLength屬性。接著我們調(diào)用請(qǐng)求對(duì)象的GetRequestStream方法獲取請(qǐng)求流,并將數(shù)據(jù)寫入流中。最后我們通過調(diào)用請(qǐng)求對(duì)象的GetResponse方法來(lái)獲取響應(yīng),并使用StreamReader讀取響應(yīng)流中的數(shù)據(jù)。
在這個(gè)例子中,我們使用了以JSON格式編寫的數(shù)據(jù)。對(duì)于JSON類型數(shù)據(jù)的提交,我們需要設(shè)置Content-Type為"application/json"。