Я хочу отправить JSON из настольного приложения на сервер с помощью mvc wepApi. это мой рабочий код приложения, который преобразует данные в 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();
}
и это мой веб-апи
// 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);
}
но когда пост апи называет Value is null
. Почему?
Хм ... Можете ли вы попробовать использовать тип контента 'application/json'? Кроме того, в этом случае вы можете попробовать 'public void Post ([FromBody] UserType value)' - вам не нужно десериализовать JSON самостоятельно. Также проверьте, что вы получаете, отлаживая и проверяя объект Request.Form (и посмотрите, что доступно под каким ключом). – Gerino
@ Герино, это не сработало! – nimaSadeghpour
его легкий вопрос для меня. –