probablemente sea algo que estoy haciendo mal, pero estoy devolviendo XML de mi servicio WCF Rest que está creado con VS 2010. En el violinista puede ver aquí que regresa prueba/html como el tipo de contenidoWCF REST: especifique el tipo de contenido en WebGet El atributo no parece funcionar
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 222
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 16 Aug 2010 20:49:55 GMT
Así que fui por delante y añadió lo siguiente en el atributo WebGet en mi método, pero sigue devolviendo text/html ... supongo que debo devolver el contenido tipo de texto/xml porque de hecho estoy devolviendo XML?
Heres mi método, he añadido el ResponseFormat al atributo ... no estaba segura de si necesitaba estilo de carrocería (no tengo ni idea de lo que hace, pero lo vio en un ejemplo :-))
[WebGet(UriTemplate = "", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Xml)]
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" } };
}
de todos modos después del cambio y la reconstrucción del proyecto, todavía devuelve el tipo de contenido incorrecto ... ¿falto algo?
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 222
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 16 Aug 2010 20:54:15 GMT
EDITAR
Ok me dieron una solución de trabajo pero el método atributo no tiene efecto, muy extraño ... pero si pongo este
WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
Ahora puedo comprobar violinista y el tipo de contenido es en realidad texto/xml.
Pero necesito poner esto en cada método y el método de atributo parece no tener ningún efecto.
¿Alguien sabe por qué?
Lo hago funcionar, pero no entiendo por qué el atributo NO TIENE EFECTO. Actualizaré mi pregunta. –
No estoy seguro si todavía está interesado en esta pregunta (han pasado unos días), pero ¿cómo está solicitando este servicio? jQuery, ¿algo más? Creo que está recibiendo texto/html porque eso es lo que se envía en el encabezado Aceptar de la solicitud (o ContentType). ¿Puede actualizar cómo está solicitando el servicio y qué violín dice que son sus encabezados de solicitud? ¡Gracias! –
Hola D Hoerster, sí, todavía estoy interesado ... Estoy haciendo una simple solicitud usando firefox y mis encabezados están incluidos en la pregunta anterior .... Copiado y pegado de un violinista. Gracias –