@Override
    public ListObjectsResult parse(Response response) throws IOException {
      try {
        ListObjectsResult result = parseObjectListResponse(response.body().byteStream());

        result.setRequestId(response.header(OSSHeaders.OSS_HEADER_REQUEST_ID));
        result.setStatusCode(response.code());
        result.setResponseHeader(parseResponseHeader(response));

        return result;
      } catch (Exception e) {
        throw new IOException(e.getMessage(), e);
      } finally {
        safeCloseResponse(response);
      }
    }