Всем привет!
Учусь писать веб-сервисы. Накидал вот такой простенький веб-сервис:
[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".
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать