Возникла проблема при передаче списка параметров с помощью HttpContent

Я пытаюсь передать класс со свойством, имеющим список, службе Restful с помощью метода Post с использованием HTTPContent. Вот мой код контроллера:

    protected async Task<T> GetOfflineReport<T>(ReportSettings rSettings)
            {

    string postUrl = "http://localhost/Application/ReportingDataService/v1/GetOfflineReport2012";

    JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
    PlatformClient _platform = new PlatformClient();
    T result = default(T);

    using (HttpContent httpContent = new StringContent(jsSerializer.Serialize(rSettings)))
    {
    httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

    using (HttpResponseMessage response = await _platform._HttpClient(Session).PostAsync(postUrl, httpContent))
    {
        if (response.IsSuccessStatusCode)
           result = await response.Content.ReadAsAsync<T>();
    }
  }
  return (result);
}

В приведенном выше методе контроллера класс ReportSettings выглядит следующим образом:

   [DataContract]
        public class ReportSettings
        {

            [DataMember]
            public string ReportName
            {
                get;
                set;
            }

            [DataMember]
            public string ReportPath
            {
                get;
                set;
            }

            [DataMember]
            public ReportFormat ReportFormat
            {
                get;
                set;
            }

            [DataMember]
            public List<ReportParams> Parameters
            {
                get;
                set;
            }
    }

Когда я передаю параметр "reportSettings" как ноль, он собирается обслуживать методы. Но когда "reportSettings" проходит со списком параметров, это не относится к методу сервиса.

Метод обслуживания заключается в следующем:

        [WebInvoke(Method = "POST", UriTemplate = "GetOfflineReport2012")]
        [OperationContract]
        IEnumerable<byte> GetOfflineReport2012(ReportSettings reportSettings);

public IEnumerable<byte> GetOfflineReport2012(ReportSettings reportSettings)
        {

              try
                {
                    var dp = _mDbFactory.GetReportingDataProvider();
                    var result = dp.GetOfflineReport2012(reportSettings);
                    return result;
                }
                catch (Exception ex)
                {
                    throw _convertToWebFaultException(ex);
                }

        }

Не могли бы вы помочь мне в решении этой проблемы. Как я могу передать значения параметров отчета сервису. Я не получаю никаких исключений, но это не касается службы.

1 ответ

Я получил решение проблемы. Я передаю нулевое значение для параметра.

Другие вопросы по тегам