WCF 4.0: WebMessageFormat.Json nie działa z szablonem WCF REST
Pobrano szablon WCF REST z tej lokalizacji.
Domyślnym formatem odpowiedzi jest XML, który działa świetnie. Jednak, gdy próbuję uzyskać odpowiedź JSON, nadal otrzymuję XML.
To jest mój zmodyfikowany kod-
[WebGet(UriTemplate = "",ResponseFormat = WebMessageFormat.Json)]
public List<SampleItem> GetCollection()
{
// TODO: Replace the current implementation to return a collection of SampleItem instances
return new List<SampleItem>() { new SampleItem() { Id = 1, StringValue = "Hello" } };
}
Zwróć uwagę na ResponseFormat = WebMessageFormat.Json. To jedyna zmiana, jaką zrobiłem w tym szablonie.
Co mi umyka? Dzięki!5 answers
/ Align = "left" / automaticFormatSelectionEnabled
właściwość dla standardendpoint powinna być ustawiona na false
, a defaultOutgoingReponseFormat na Json
.
<standardEndpoint name="" helpEnabled="true"
automaticFormatSelectionEnabled="false"
defaultOutgoingResponseFormat ="Json" />
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-11 05:29:50
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="false" defaultOutgoingResponseFormat="Json"/>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
Zmienia się na 2 atrybuty w sieci.config to naprawi:
automaticFormatSelectionEnabled=false
-
defaultOutgoingResponseFormat=Json
(edited: from "true")
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-08 08:39:15
Dla mnie ustawienie formatu odpowiedzi na JSON w atrybucie WebGet nie działa. Ustawienie go w ciele metody robi;
// This works
WebOperationContext.Current.OutgoingResponse.Format = WebMessageFormat.Json;
return jsonData;
// This doesn't work
`[WebGet(UriTemplate = "/conditions?term={term}", ResponseFormat = WebMessageFormat.Json)]`
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-26 11:34:52
Click - > reference links
" gdy włączony jest automatyczny wybór formatu, Infrastruktura przetwarza nagłówek Accept wiadomości żądania i określa najbardziej odpowiedni format odpowiedzi. Jeśli nagłówek Accept nie określa odpowiedniego formatu odpowiedzi, Infrastruktura wykorzystuje typ treści komunikatu żądania lub domyślny format odpowiedzi operacji."
EDIT: ten link może cię poruszyć http://blogs.msdn.com/b/endpoint/archive/2010/11/01/wcf-webhttp-service-returns-http-415-unsupported-media-type.aspx
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-17 12:52:23
Trafiałem w takie problemy za każdym razem, gdy próbowałem stworzyć serwis internetowy JSON.
Teraz po prostu postępuję zgodnie z instrukcjami pokazanymi tutaj.
Http://mikesknowledgebase.com/pages/Services/WebServices-Page1.htm
Pokazuje, jak krok po kroku stworzyć serwis internetowy JSON z zrzutami ekranu i przykładami.
Mam nadzieję, że to pomoże.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-29 15:43:44