0
基於this,爲我的Web API項目,我在客戶端使用此代碼:爲什麼Post操作失敗?
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?!?
這是我在服務器的存儲庫類方法:
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是下一個步驟,但我已經把腳趾釘到了目前爲止。
根據這裏的答案:http://stackoverflow.com/questions/20646715/how-can-i-call-a-web-api-post-method,我需要這條線代碼: var webResponse =(HttpWebResponse)webRequest.GetResponse(); 在這種情況下我真的需要一個RequestStream(發佈數據)嗎? –
是的。 'GetResponse'用於從您的請求中檢索_response_。 'GetRequestStream'獲取用於爲請求寫入數據的'Stream'。如果你想發送一些請求,你需要寫信給它。 –