为什么此Post操作失败
本文关键字:失败 操作 Post 为什么 | 更新日期: 2024-10-21 13:55:55
基于此,对于我的Web API项目,我在客户端上使用以下代码:
private void AddDepartment()
{
int onAccountOfWally = 42;
string moniker = "Billy Bob";
Cursor.Current = Cursors.WaitCursor;
try
{
string uri = String.Format("http://platypi:28642/api/Departments/{0}/{1}", onAccountOfWally, moniker);
var webRequest = (HttpWebRequest)WebRequest.Create(uri);
webRequest.Method = "POST";
var webResponse = (HttpWebResponse)webRequest.GetResponse();
if (webResponse.StatusCode != HttpStatusCode.OK)
{
MessageBox.Show(string.Format("Failed: {0}", webResponse.StatusCode.ToString()));
}
}
finally
{
Cursor.Current = Cursors.Default;
}
}
我到达了我在这行代码上设置的断点:
var webResponse = (HttpWebResponse)webRequest.GetResponse();
但是当我在上面F10(或尝试到F11)时,它失败了,并显示"远程服务器返回错误(411)所需长度"
Compilerobot需要什么的长度?!?
这是我在服务器的Repository类中的方法:
public void Post(Department department)
{
int maxId = departments.Max(d => d.Id);
department.Id = maxId + 1;
departments.Add(department);
}
控制器代码为:
public void Post(Department department)
{
deptsRepository.Post(department);
}
我的GET方法运行良好;POST是下一步,但到目前为止我的脚趾还很粗。
您还没有发布任何内容。
当你这样做的时候,你需要提供内容的长度。有点像这样:
byte[] yourData = new byte[1024]; // example only .. this will be your data
webRequest.ContentLength = yourData.Length; // set Content Length
var requestStream = webRequest.GetRequestStream(); // get stream for request
requestStream.Write(yourData, 0, yourData.Length); // write to request stream