c#.net Http响应411包含长度时所需的长度

时间:2016-06-02 18:08:19

标签: c# .net http post

我正试图从我自己的本地.net网站获得一个简单的回复。 (实际上我只是想从服务器端看看内容体的外观。)以下是发送响应的控制器方法:

async: true

以下是提出请求的代码:

 public HttpResponseMessage Post([FromBody]string value)
        {
            data.Add(value);
            var msg = Request.CreateResponse(HttpStatusCode.Created);
            msg.Headers.Location = new Uri(Request.RequestUri + "/" + (data.Count-1).ToString());
            msg.Content = new StringContent(value);
            return msg;
        }

我收到了回复邮件: HttpWebRequest request; request = (HttpWebRequest)WebRequest.Create ("http://localhost:50203/api/Values"); request.Method = "POST"; try { WebResponse response = (HttpWebResponse)request.GetResponse(); Stream dataStream = response.GetResponseStream(); byte[] requestBody = ASCIIEncoding.ASCII.GetBytes(HttpUtility.UrlEncode("grant_type=client_credentials")); request.ContentLength = requestBody.Length; dataStream.Write(requestBody, 0, requestBody.Length); StreamReader reader = new StreamReader(dataStream); myString = reader.ReadToEnd(); } 。但是你可以看到我在行中分配内容长度:HTTP Error 411. The request must be chunked or have a content length

为什么我收到此错误?

1 个答案:

答案 0 :(得分:0)

感谢来自its86的帮助,我能够看到发生了什么。这与误解HttpWebRequest方法有关。我试图设置内容长度并在我使用GetResponse方法发布之后写入请求。我应该先发布长度。这不是一个特别好的问题,没有其他人应该回答。