Pregunta Error 406 JSON no aceptable


http://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-CreateorReplaceRepositoryConfiguration

Estoy usando la llamada Crear o reemplazar configuración de repositorio. Sin embargo, recibo un error 406: no aceptable. Otras llamadas PUT funcionan pero no devuelven JSON. Creo que JSON es la fuente del error, pero no he podido resolverlo ni probarlo.

He añadido el código como abajo

RestClient Client = new RestClient(uriString);
RestRequest Request = new RestRequest(requestType);

Request.AddHeader("Authorization", "Basic " + credentials);
Request.AddHeader("Accept", "application/json");

He visto subprocesos donde agregar el encabezado para aceptar JSON resuelve el error, pero esto no me ha funcionado.


5
2018-01-13 20:59


origen


Respuestas:


UN 406 estado de HTTP significa que si un servidor web detecta que los datos que desea devolver no son aceptables para el cliente, devuelve un encabezado que contiene el código de error 406. El cliente puede definir las características de los datos que aceptará desde el servidor web utilizando los encabezados de aceptación.
En este caso declaras el que te gustaría aceptar application/json:

Request.AddHeader("Accept", "application/json");

sin embargo, el método REST API que está invocando está volviendo text/plain.
Debes cambiar el código para aceptar texto / plano:

Request.AddHeader("Accept", "text/plain");

7
2018-01-15 08:36



Quería agregar esto para futuros usuarios atrapados como yo. Estaba teniendo el mismo problema e intenté la solicitud con Postman y vi que Content-Type era "application / hal + json". Lo estaba intentando con application / json sin suerte.

Entonces, al ejecutar una prueba en el cartero, pude descifrar qué necesitaba exactamente el servidor.

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/hal+json"));

1
2018-05-10 20:42



Primero el Accept el encabezado indica lo que el cliente está listo para devolver, no lo que envía el cliente. El encabezado que indica qué envía el cliente es Content-Type.

Además, este método no acepta application/json. Como se establece claramente en los documentos, acepta uno de los siguientes:

  • application/vnd.org.jfrog.artifactory.repositories.LocalRepositoryConfiguration+json
  • application/vnd.org.jfrog.artifactory.repositories.RemoteRepositoryConfiguration+json
  • application/vnd.org.jfrog.artifactory.repositories.VirtualRepositoryConfiguration+json

0
2018-01-14 11:32