-1

Lorsque la section de code ci-dessous est exécutée dans mon programme, j'obtiens une exception d'E/S.IOException lors de l'utilisation de InputStreamReader

try(BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(logStorageUrl.openStream()))) { 
      String currentLine; 
      while((currentLine = bufferedReader.readLine()) != null){ 
       Vault vlt = mapper.readValue(currentLine, Vault.class); 
       logger.debug("Log Store Name: " + vlt.getvault_name()); 
       logger.debug("Log Store Vault: " + vault); 
       if(vlt.getvault_name().equals(vault.toLowerCase())){ 
        logger.debug("Per Vault Total log_store vault name: " + vlt.getvault_name() + ", bytes: " + vlt.getBytes()); 
        byteCount += vlt.getBytes(); 
       } 
      } 
      logger.debug("Total LogStore ByteCount: " + byteCount); 

} catch(IOException e){ 
      System.out.println("IO Exception " + e); 
} 

est ici les détails d'exception:

IO Exception java.io.IOException: Server returned HTTP response code: 403 for URL: https://s3-api.XXXXXX.net/cr-test 

Je soupçonne que cela pourrait être lié à l'authentification aws v4 comme c'est la méthode que je me sers et je l'ai déjà touché un problème avec elle, mais qui semble être résolu. Pourrait-il y avoir quelque chose qui manque dans mon en-tête? Mon précédent numéro était dû au fait de ne pas passer 'host' dans mon en-tête mais je l'ai inclus cette fois. Je sais que j'ai passé les bonnes clés d'accès et de sécurité et que je n'ai sélectionné aucun en-tête particulier à transmettre.

+0

Tout d'abord, qu'est-ce qu'un [403] (https://en.wikipedia.org/wiki/HTTP_403). Donc, je suppose que vous avez atteint une limite de la demande quotidienne ou quelque chose de similaire. Si ce n'est pas le cas, vérifiez s'il n'y a rien que vous oubliez de fournir à cette API. Vérifiez la demande avec un client REST en premier – AxelH

+0

Vous devrez poster plus d'informations. Quel service appelez-vous, quels en-têtes envoyez-vous, comment vous authentifiez, ... – andih

+0

Le code d'état HTTP signifie INTERDIT, donc vous avez certainement un problème d'authentification ici –

Répondre

0

Je passais un uri incorrect. Une fois que j'ai eu l'URI correct, j'ai arrêté d'avoir l'erreur.