Es scheint, als ob ServiceStack nicht möchte, dass ich eine DateTime-Eigenschaft als Argument in meiner Anfrage verwende. Ich erhalte die Nachricht "Ungültige Anfrage" ... keine weiteren nützlichen Details in der Ausnahme. Die innere Ausnahme zeigt HTML-Code (abgeschnitten), und sagt nur { „Typdefinitionen mit einem beginnen sollte‚‘erwarten serialisierte Typ‚Error‘...“ServiceStack DateTime Deserialize Problem
In meinem Klienten:
private DateTime _selectedReportDate;
public DateTime SelectedReportDate
{
get { return _selectedReportDate; }
set { SetProperty(ref _selectedReportDate, value); }
}
....
var txResults = await ServiceClient.Instance.GetAsync(new PaymentSummaries()
{
Date = SelectedReportDate
});
Service-Modell :
[Route("/report/paymentsummaries/{Date}", "GET")]
public class PaymentSummaries : IReturn<List<PaymentSummary>>
{
public DateTime Date { get; set; }
}
Service Interface:
[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>());
}
}
ich bin ein "Bad Request" bekommen Error.
Wenn ich ändern:
Date = SelectedReportDate
zu
Date = new DateTime()
im Client-Code, es funktioniert, und trifft den Service Interface Code aus irgendeinem Grund.
aktualisieren
Hier ist der Request-Header:
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
Der Antwort-Header sagt mir:
[Httpexception (0x80004005). Ein potentiell gefährlicher Request.Path Wert vom Client erkannt wurde (:)]
System.Web.HttpRequest.ValidateInputIfRequiredByConfig() +9827624
System.Web.PipelineStepManager.ValidateHelper (Httpcontext Kontext) +53
Könnten Sie bitte ein [MCVE] (http://stackoverflow.com/help/mcve) erstellen? –
Wert, den Sie weitergeben, ist! – Aravind
Wenn Sie die ausgelöste Ausnahme abfangen, was ist die ErrorMessage-Eigenschaft? –