【问题标题】:IOException when using InputStreamReader使用 InputStreamReader 时出现 IOException
【发布时间】:2017-05-26 11:08:53
【问题描述】:

在我的程序中执行以下代码部分时,我得到一个 IOException。

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 );
}

以下是异常详情:

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

我怀疑它可能与 aws v4 身份验证有关,因为这是我正在使用的方法,我已经遇到了问题,但似乎已经解决了。我的标题中可能缺少一些东西吗?我之前的问题是由于没有在我的标题中传递“主机”,但这次我包含了它。

我知道我传递了正确的访问密钥和密钥,并且我没有选择要传递的任何特定标头。

【问题讨论】:

  • 首先,403 是什么。所以我猜你已经达到了每日请求的限制或类似的限制。如果没有,请检查您是否忘记向此 API 提供任何内容。首先使用 REST 客户端检查请求
  • 您必须发布更多信息。您调用哪个服务,发送哪些标头,如何进行身份验证,...
  • HTTP 状态码意味着 FORBIDDEN,所以你这里肯定有身份验证问题

标签: java authentication http-headers http-status-code-403 ioexception


【解决方案1】:

我传递了一个不正确的 uri。一旦我得到正确的 uri,我就不再收到错误了。

【讨论】:

    猜你喜欢
    • 2012-11-21
    • 2016-05-16
    • 2020-12-12
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多