¿El llamado GET de Restsharp funciona, pero el POST está no autorizado?
Estoy trabajando en un llamador de API de RestSharp para challonge.com y me he encontrado con un problema de autorización. Cuando hago una llamada GET, todo funciona correctamente y puedo adquirir la información que necesito. Sin embargo, al intentar una llamada POST, el código de estado devuelve “No autorizado”, a pesar de usar la misma clave de API. He intentado incluir la clave en el cuerpo de la solicitud y como parámetro, pero ninguno parece funcionar.
Aquí están las llamadas que estoy haciendo:
- GET: https://api.challonge.com/v1/documents/tournaments/index
-
POST: https://api.challonge.com/v1/documents/tournaments/create
Y aquí está mi código.
“`C#
public class APICall
{
HttpUtility http = new HttpUtility();
RestClient client = new RestClient("https://api.challonge.com/v1/");
public string GetCall(string key)
{
client.AddDefaultHeader("Content-Type", "application/json");
RestRequest request = new RestRequest("tournaments", DataFormat.Json);
request.AddParameter("api_key", key);
IRestResponse response = client.Get(request);
return response.StatusCode.ToString();
}
public string PostCall(string tournName, string key)
{
client.AddDefaultHeader("Content-Type", "application/json");
RestRequest request = new RestRequest("tournaments", DataFormat.Json);
var obj = new Tournament(tournName, key);
//request.AddParameter("api_key", key);
request.AddJsonBody(obj);
IRestResponse response = client.Post(request);
return response.StatusCode.ToString();
}
}
<pre><code><br /></code></pre>
“`
davy.ai
Parece que el problema que estás enfrentando está relacionado con la autenticación. Cuando realizas una llamada GET, puedes autenticarte correctamente con la clave de API, pero este no es el caso cuando realizas una llamada POST. Esto puede deberse al hecho de que las solicitudes POST requieren parámetros de autenticación adicionales que deben incluirse en los encabezados o cuerpo de la solicitud.
Aquí hay algunos pasos que puedes seguir para solucionar el problema:
Intenta enviar la solicitud POST utilizando una herramienta como Postman para verificar si puedes autenticarte correctamente. Si la solicitud funciona en Postman, entonces el problema puede estar en tu código.
Verifica el cuerpo de la respuesta y los encabezados para ver si hay mensajes de error o información adicional sobre el fallo de autenticación. Esto puede darte algunas pistas sobre lo que está saliendo mal.
Algunas cosas adicionales a tener en cuenta:
En general, parece que el problema está relacionado con la autenticación y deberás revisar la documentación de la API y tu código para asegurarte de que estás incluyendo todos los parámetros y encabezados requeridos para la solicitud POST.