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