簡體   English   中英

C#HttpWebRequest.Write不發送內容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM