es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

HttpURLConnection – La cabecera de Autorización siempre es nula.

Estoy tratando de autenticarme en la API aquí en Java Spring MVC.

Es solo que tengo problemas con mi conexión, especialmente cuando configuro setRequestProperty("Authorization", "*"); siempre devuelve un error 401. ¿Qué podría estar mal?

try {
    URL url = new URL("https://account.api.here.com/oauth2/token");
    conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Authorization", "OAuth oauth<em>consumer</em>key=\"******\",oauth<em>signature</em>method=\"HMAC-SHA256\",oauth<em>timestamp=\"1633463792\",oauth</em>nonce=\"******\",oauth_version=\"1.0\",oauth_signature=\"*******\"");

    //conn.setRequestProperty("Authorization", "OAuth");
    //conn.setRequestProperty("oauth_consumer_key", "*******************");
    //conn.setRequestProperty("oauth_nonce", "********");
    //conn.setRequestProperty("oauth_signature", "*******");
    //conn.setRequestProperty("oauth_signature_method", "HMAC-SHA256");
    //conn.setRequestProperty("oauth_timestamp", "1633463792");
    //conn.setRequestProperty("oauth_version", "1.0");

    conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    conn.setDoOutput(true);
    OutputStream os = conn.getOutputStream();
    os.write(POST_PARAMS.getBytes());
    os.flush();
    os.close();

    int responseCode = conn.getResponseCode();
    return conn.getRequestMethod() + os + "\n" + responseCode + "\nContent-type:" + conn.getRequestProperty("Content-Type") + "\nAuthorization: " + conn.getRequestProperty("Authorization");
} catch (Exception e) {
    e.printStackTrace();
}

En mi respuesta con Postman cuando realizo la llamada, aparece así. ¿Por qué siempre se muestra como null?

POST granttype=clientcredentials
401
Content-type: application/x-www-form-urlencoded
Authorization: null

Ver captura de pantalla aquí

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que podría haber un problema con la forma en que estás configurando la cabecera de autorización en tu código de HttpURLConnection. Específicamente, en la sección de comentarios de tu código, estás configurando la cabecera de autorización utilizando llamadas separadas a setRequestProperty para cada parámetro de OAuth, lo cual podría no ser correcto.

    En cambio, puedes intentar configurar la cabecera de autorización completa como una única cadena, como lo has hecho en tu bloque de código inicial. Sin embargo, asegúrate de que los valores de cada parámetro sean correctos y de que el formato de la cabecera siga el protocolo OAuth 1.0a.

    Además, podría ser útil verificar la documentación de la API o comunicarte con el proveedor de la API para confirmar la forma correcta de autenticarse con su API utilizando OAuth.

Comments are closed.