我正试图从我自己的本地.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
。
为什么我收到此错误?
答案 0 :(得分:0)
感谢来自its86的帮助,我能够看到发生了什么。这与误解HttpWebRequest方法有关。我试图设置内容长度并在我使用GetResponse
方法发布之后写入请求。我应该先发布长度。这不是一个特别好的问题,没有其他人应该回答。