Я только что закончил свою первую службу WCF 4.0 Rest и не понимаю, почему Content-Type возвращаемых данных меняется между вызовами службы через Fiddler и Firefox. Вот мой сервисный контракт:
[ServiceContract]
public interface IProjectService
{
[OperationContract]
[WebGet(UriTemplate = "project/{id}/json", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
ProjectDataContract GetProjectJson(string id);
[OperationContract]
[WebGet(UriTemplate = "project/{id}/xml", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Xml)]
ProjectDataContract GetProjectXml(string id);
[OperationContract]
[WebGet(UriTemplate = "userprojects/{userKey}/json", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
List<ProjectDataContract> GetProjectsByUserJson(string userKey);
[OperationContract]
[WebGet(UriTemplate = "userprojects/{userKey}/xml", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Xml)]
List<ProjectDataContract> GetProjectsByUserXml(string userKey);
}
Как видите, я устанавливаю формат ответа для каждой операции. Если запрос заканчивается на "/ json", я возвращаю данные json. Если запрос заканчивается на «/ xml», то возвращаются данные xml. По крайней мере, таковы мои намерения.
Когда я выполняю вызов http://localhost:5050/ProjectServiceLibrary/project/27/xml в Firefox, я вижу, что для типа содержимого установлено значение «text / html», тогда как тот же запрос, вызываемый в fiddler, показывает правильный тип содержимого «application / xml». ». То же самое происходит для вызова запроса с суффиксом "/ json" - "text / html" в firefox и "application / json" в fiddler.
Итак, почему это происходит? Которому я доверяю? Я скачал дополнение JSONView Firefox, но все выглядит как json. Он обрабатывает XML как JSON.
Я уверен, что упускаю что-то очевидное. Любая помощь будет принята с благодарностью.