Всем привет!
Учусь писать веб-сервисы. Накидал вот такой простенький веб-сервис:
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class UserController : BaseService
{
[OperationContract]
[WebInvoke(Method="POST",RequestFormat=WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.Wrapped,ResponseFormat=WebMessageFormat.Json)]
public string DataGet(WarehouseInfo hh)
{
return hh == null ? "Хватит!" : hh.Name;
}
[DataContract]
public class WarehouseInfo
{
[DataMember(Name = "складGuid")]
public string Id { get; set; }
[DataMember(Name = "пометкаУдаления")]
public string isDelete { get; set; }
[DataMember(Name = "наименование")]
public string Name { get; set; }
}
}
Как бы я не пыхтел с Постманом, но WarehouseInfo всегда прилетает пустой. Что я делаю не так?
Нравится
4 комментария
30 июня 2021 13:28
пример своего запроса можно(с телом урлом и хедерами), а ключ csrf указывали в хедерах, куки перед отправкой чистили, точно ли отправляете пост запрос , а не гет?
1 июля 2021 10:16
namespace Terrasoft.Configuration
{
using System;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.ServiceModel.Activation;
using Terrasoft.Core.DB;
using Terrasoft.Web.Common;
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class ClassName : BaseService
{
[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped,
RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
public void MethodName(входные параметры)
{
// логика веб-сервиса
}
}
}Кусок рабочего веб-сервиса.
22 сентября 2021 20:34
Отвечу на всякий случай. Возможно автор темы слал запрос вида:
{
"Id ": "123",
"isDelete" : "123",
"Name": "123"
}
Хотя в данном случае требуется запрос вида:
{
"hh": {
"Id ": "123",
"isDelete" : "123",
"Name": "123"
}
}
Все дело в: "BodyStyle=WebMessageBodyStyle.Wrapped".
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать