看起来 ServiceStack 不喜欢我在请求中使用 DateTime 属性作为参数。我收到了一个“错误请求”的消息...异常中没有其他有用的细节。内部异常显示 html 代码(被截断),只是说“类型定义应该以‘{’开头,期望序列化类型 'ErrorResponse'...”
在我的客户端中:
我是一名有用的助手,可以为您翻译文本。
在客户端代码中,它可以工作,并因某种原因命中了服务接口代码。
更新
以下是请求头:
GET http://devservicestack:44345/report/paymentsummaries/2016-11-30T13%3A09%3A15.6795974-05%3A00 HTTP/1.1 Accept-Encoding: gzip,deflate Accept: application/json User-Agent: ServiceStack .NET Client 4.54 Host: devservicestack:44345 Cookie: ss-id=F4Bt4aMonhyFQcfqmSmR; ss-pid=K6aJMA17Xw31qIVy1z8V; ss-opt=temp 响应头告诉我:
[HttpException (0x80004005): 客户端请求中检测到一个潜在的危险的 Request.Path 值 (:).] System.Web.HttpRequest.ValidateInputIfRequiredByConfig() +9827624 System.Web.PipelineStepManager.ValidateHelper(HttpContext context) +53
在我的客户端中:
private DateTime _selectedReportDate;
public DateTime SelectedReportDate
{
get { return _selectedReportDate; }
set { SetProperty(ref _selectedReportDate, value); }
}
....
var txResults = await ServiceClient.Instance.GetAsync(new PaymentSummaries()
{
Date = SelectedReportDate
});
服务模型:
[Route("/report/paymentsummaries/{Date}", "GET")]
public class PaymentSummaries : IReturn<List<PaymentSummary>>
{
public DateTime Date { get; set; }
}
服务接口:
[Authenticate]
public class PaymentSummariesService : Service
{
public List<PaymentSummary> Get(PaymentSummaries request)
{
var results = Db.SqlList<Data.OrmLite.SpResponse.ReconcilePaymentSummaryRecord>("EXEC [Report].[ReconcilePaymentsSummary] @date", new { date = request.Date });
return results.ConvertAll(x => x.ConvertTo<PaymentSummary>());
}
}
我是一名有用的助手,可以为您翻译文本。
我收到了一个“Bad Request”错误。
当我更改时:
Date = SelectedReportDate
到
Date = new DateTime()
在客户端代码中,它可以工作,并因某种原因命中了服务接口代码。
更新
以下是请求头:
GET http://devservicestack:44345/report/paymentsummaries/2016-11-30T13%3A09%3A15.6795974-05%3A00 HTTP/1.1 Accept-Encoding: gzip,deflate Accept: application/json User-Agent: ServiceStack .NET Client 4.54 Host: devservicestack:44345 Cookie: ss-id=F4Bt4aMonhyFQcfqmSmR; ss-pid=K6aJMA17Xw31qIVy1z8V; ss-opt=temp 响应头告诉我:
[HttpException (0x80004005): 客户端请求中检测到一个潜在的危险的 Request.Path 值 (:).] System.Web.HttpRequest.ValidateInputIfRequiredByConfig() +9827624 System.Web.PipelineStepManager.ValidateHelper(HttpContext context) +53