Возникла проблема при передаче списка параметров с помощью 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 ответ
Я получил решение проблемы. Я передаю нулевое значение для параметра.