[英]C# HttpWebRequest.Write does not send content
嘗試發送包含一些正文內容的Web請求。 重要的是,我在發布請求的正文中需要一些數據。 我對如何執行此操作的理解是打開WebRequestStream,然后將字節寫入其中,然后將其關閉。 這應該很簡單。 這是我的代碼:
HttpWebRequest request;
request = (HttpWebRequest)WebRequest.Create("http://localhost:50203/api/Values");//
request.Method = "POST";
byte[] requestBody = ASCIIEncoding.ASCII.GetBytes(HttpUtility.UrlEncode("grant_type=client_credentials"));
Stream requestBodyStream = request.GetRequestStream();
requestBodyStream.Write(requestBody, 0, requestBody.Length);
requestBodyStream.Flush();
requestBodyStream.Close();
WebResponse response = (HttpWebResponse)request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
myString = reader.ReadToEnd();
但是RequestBodyStream.Write方法不會在正文中發送任何內容。 我知道這是因為我在另一端運行服務器端程序。
我還嘗試使用StreamWriter而不是使用字節流來執行此操作,並且得到相同的結果。 不管我怎么做,體內都沒有滿足感。
我的理解是,關閉流是發送實際數據的原因。 我還嘗試將Flush()方法添加到流中。
為什么這種方法不產生任何身體?
將“ ContentType”和“ ContentLength”標頭添加到請求實例:
request.ContentType = "application/json"; // Or whatever you want
request.ContentLength = requestBody.Length;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.