Использование Visual Studio 2013 Я создал новый проект Web API 2 и новый проект MVC. Другие клиенты будут обращаться к API, который является причиной его создания. В конечном итоге клиенты для API позволят пользователям создавать учетную запись с помощью Facebook и других.Аутентификация веб-токена - нет MediaTypeFormatter доступно
Проблема, с которой я столкнулся, попробовать прочитать ошибки, возвращенные API при входе в систему, например Bad Bad. Я видел много и много сообщений о подобных ошибках: «No MediaTypeFormatter доступен для чтения объекта типа что-то из контента с типом мультимедиа 'text/html'." но не может решить эту проблему.
В API только нужно вернуть JSON так в моем WebApiConfig.cs файл GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
Вот мой пост в Скрипач
Вот ответ:
и текстовое представление ответа whic ч выглядит как JSON мне
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
Yoda test = new Yoda() { email = model.Email, password = model.Password };
HttpClient client = CreateClient();
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
//client.DefaultRequestHeaders.TryAddWithoutValidation("content-type", "application/x-www-form-urlencoded");
client.DefaultRequestHeaders.TryAddWithoutValidation("content-type", "application/json");
HttpResponseMessage result = await client.PostAsJsonAsync(_apiHostURL, test);
result.EnsureSuccessStatusCode();
if (result.IsSuccessStatusCode)
{
var token = result.Content.ReadAsAsync<TokenError>(new[] { new JsonMediaTypeFormatter() }).Result;
}
public class TokenError
{
[JsonProperty("access_token")]
public string AccessToken { get; set; }
[JsonProperty("token_type")]
public string TokenType { get; set; }
[JsonProperty("expires_in")]
public int ExpiresIn { get; set; }
[JsonProperty("refresh_token")]
public string RefreshToken { get; set; }
[JsonProperty("error")]
public string Error { get; set; }
}
public class Yoda
{
public string email { get; set; }
public string password { get; set; }
public string grant_type
{
get
{
return "password";
}
}
}
Точная ошибка «Нет MediaTypeFormatter не доступна для чтения объекта типа„TokenError“от содержания с типом носителя„текст/html“. "