我想通過mvc wepApi從桌面應用程序向服務器發送JSON。 這是我的桌面應用程序代碼,它將數據轉換爲JSON併發送。通過JSON發送數據
private void btnAddUserType_Click(object sender, EventArgs e)
{
UserType userType = new UserType();
userType.UserTypeName = txtUserTypeName.Text;
string json = JsonConvert.SerializeObject(userType);
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost:3852/api/default1");
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = "POST";
var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream());
streamWriter.Write(json);
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
var streamReader = new StreamReader(httpResponse.GetResponseStream());
var responseText = streamReader.ReadToEnd();
}
,這是我的網頁API
// POST api/default1
public void Post([FromBody]string value)
{
UserTypeRepository bl = new UserTypeRepository();
DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(UserType));
MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(value));
UserType u = new UserType();
u = (UserType)js.ReadObject(stream);
bl.Add(u);
}
但當交API的調用Value is null
。 爲什麼?
嗯......你可以嘗試使用內容類型「application/json」嗎?另外,在這種情況下,你可以嘗試'public void Post([FromBody] UserType value)' - 你不必自己反序列化JSON。 此外,請通過調試並檢查Request.Form對象(並查看在什麼鍵下有什麼可用)來檢查您收到的內容。 – Gerino 2015-02-11 15:37:45
@Gerino,它沒有工作! – nimaSadeghpour 2015-02-11 15:55:20
對我來說是一個簡單的問題。 – 2015-02-11 17:39:52