Вопрос

В post-метод прилетают пустые данные

Всем привет!

 

Учусь писать веб-сервисы. Накидал вот такой простенький веб-сервис:

 

[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 комментария

пример своего запроса можно(с телом урлом и хедерами), а ключ csrf указывали в хедерах, куки перед отправкой чистили, точно ли отправляете пост запрос , а не гет?

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(входные параметры)
        {
             // логика веб-сервиса
        }
    }
}

Кусок рабочего веб-сервиса.

ты только подтвердил что не видишь его ошибку. У него ошибка в ссылочном типе, где у тебя обобщение "входные параметры". 

Отвечу на всякий случай. Возможно автор темы слал запрос вида:

{
 "Id ": "123",
 "isDelete" : "123",
 "Name": "123"
}



Хотя в данном случае требуется запрос вида:

{
 "hh": {
  "Id ": "123",
  "isDelete" : "123",
  "Name": "123"
 }
}

Все дело в: "BodyStyle=WebMessageBodyStyle.Wrapped".


 
Показать все комментарии