2017-01-31 7 views
0

enter image description here Привет Я разрабатываю одно приложение api2 для веб-приложений с угловыми. У меня есть одна страница входа в систему с методом POST. Я хочу установить в качестве заголовка типа содержимого ответа как Json. Я получаю в формате text/html. Я приложил к нему скриншот почтового ящика. enter image description hereКак настроить заголовок типа содержимого ответа как Json в web api2?

Это мой код контроллера.

var response = Request.CreateResponse(HttpStatusCode.OK, obj); 
         var newSessionId = new SessionIDManager().CreateSessionID(HttpContext.Current); 
         var cookie = new CookieHeaderValue("session-id", newSessionId); 
         cookie.Expires = DateTimeOffset.Now.AddDays(1); 
         cookie.Domain = Request.RequestUri.Host; 
         cookie.Path = "/"; 
         response.Headers.AddCookies(new[] { cookie }); 
         //response.Headers.Add("Content-type", "text/json"); 
         //response.Headers.Add("Content-type", "application/json"); 
         return ResponseMessage(response); 

Могу ли я узнать, где я должен внести необходимые изменения? Любая помощь будет оценена по достоинству. Спасибо.

ответ

1

добавить content-type в заголовок запроса

enter image description here

+0

Спасибо. Я пробовал, как указано выше, и он не работает. Могу ли я узнать все, что у меня отсутствует? –

+0

Вы попробовали добавить 'response.ContentType =" application/json ";' в контроллере –

+0

Существует нет метода ContentType для ответа. Я попробовал response.Headers.Add («Content-type», «application/json»), и когда я ставлю это, я получаю 500 Internal Server Error. У меня есть код в файле webapiconfig config.Formatters.JsonFormatter.SupportedMediaTypes .Add (новый MediaTypeHeaderValue ("text/json")) ;. Это создает проблемы? –

1

Чтобы убедиться, что веб-апи возвращает JSON по умолчанию можно настроить Форматирующие, подсоединенные к HttpConfiguration в классе WebApiConfig как это

//First remove the current formatters 
config.Formatters.Clear(); 

//Then add the json formatter 
config.Formatters.Add(new JsonMediaTypeFormatter()); 
+0

Спасибо. Но все же я получаю текст/html. Я добавил fidler снимок выше. –

+0

@NiranjanGodbole Я думаю, что тогда проблема может возникнуть в том, как вы создаете ResponseMessage. Попробуйте вместо этого создать новый HttpResponseMessage и прикрепите к нему данные вместо того, чтобы создавать его из запроса. –

+0

Спасибо. Могу ли я получить некоторые примеры, связанные с этим? –