Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

625
Vistas
Error de tipo de medio no admitido al publicar en la API web

Estoy haciendo una aplicación de Windows Phone y, aunque puedo extraerla fácilmente de mi Web Api, tengo problemas para publicarla. Cada vez que publico en la API, recibo el mensaje de error "Tipo de medio no admitido" y no estoy seguro de por qué sucede, considerando que la clase que uso como base para mi publicación JSON es la misma que la utilizada en la API.

Publicar cotización (método de publicación)

 private async void PostQuote(object sender, RoutedEventArgs e) { Quotes postquote = new Quotes(){ QuoteId = currentcount, QuoteText = Quote_Text.Text, QuoteAuthor = Quote_Author.Text, TopicId = 1019 }; string json = JsonConvert.SerializeObject(postquote); if (Quote_Text.Text != "" && Quote_Author.Text != ""){ using (HttpClient hc = new HttpClient()) { hc.BaseAddress = new Uri("http://rippahquotes.azurewebsites.net/api/QuotesApi"); hc.DefaultRequestHeaders.Accept.Clear(); hc.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = await hc.PostAsync(hc.BaseAddress, new StringContent(json)); if (response.IsSuccessStatusCode) { Frame.Navigate(typeof(MainPage)); } else { Quote_Text.Text = response.StatusCode.ToString(); //Returning Unsupported Media Type// } } } }

Citas y Tema (Modelo)

 public class Quotes { public int QuoteId { get; set; } public int TopicId { get; set; } public string QuoteText { get; set; } public string QuoteAuthor { get; set; } public Topic Topic { get; set; } public string QuoteEffect { get; set; } } //Topic Model// public class Topic { public int TopicId { get; set; } public string TopicName { get; set; } public string TopicDescription { get; set; } public int TopicAmount { get; set; } }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Encontré esta pregunta mientras trabajaba en un proxy inverso rápido y sucio. Necesitaba datos de formulario y no JSON.

Esto hizo el truco para mí.

 string formData = "Data=SomeQueryString&Foo=Bar"; var result = webClient.PostAsync("http://XXX/api/XXX", new StringContent(formData, Encoding.UTF8, "application/x-www-form-urlencoded")).Result;
over 4 years ago · Santiago Trujillo Denunciar

0

Para corregir el tipo de medio no compatible, tuve que usar HttpRequestMessage y agregar un encabezado para aceptar json con MediaTypeWithQualityHeaderValue como se muestra a continuación.

 var httpRequestMessage = new HttpRequestMessage { Content = new StringContent(json, Encoding.UTF8, "application/json") }; httpRequestMessage.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var httpResponse = await _client.PostAsync("/contacts", httpRequestMessage.Content);
over 4 years ago · Santiago Trujillo Denunciar

1

Debe establecer el tipo de medio al crear StringContent

 new StringContent(json, Encoding.UTF32, "application/json");
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda