Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

631
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

1

Debe establecer el tipo de medio al crear StringContent

 new StringContent(json, Encoding.UTF32, "application/json");
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda