1

我得到了露天文件,與鏈接,例如:http://localhost:8080/share/proxy/alfresco/workspace/SpacesStore/c9d187e8-aec5-4177-9587-a5b924e514cd/exemplo.pdf使用XMLHttpRequest的JavaScript和我沒有問題。但我想這樣做的JAVA:獲取文件(401未經授權) - 露天

public static byte[] callURL(String myURL) { 
     System.out.println("Requeted URL:" + myURL); 
     StringBuilder sb = new StringBuilder(); 
     URLConnection urlConn = null; 
     InputStreamReader in = null; 
     try { 
      URL url = new URL(myURL); 

      urlConn = url.openConnection(); 
      if (urlConn != null) 
       urlConn.setReadTimeout(60 * 1000); 
      if (urlConn != null && urlConn.getInputStream() != null) { 
       in = new InputStreamReader(urlConn.getInputStream(), 
         Charset.defaultCharset()); 
       BufferedReader bufferedReader = new BufferedReader(in); 
       if (bufferedReader != null) { 
        int cp; 
        while ((cp = bufferedReader.read()) != -1) { 
         sb.append((char) cp); 
        } 
        bufferedReader.close(); 
       } 
      } 
      in.close(); 
     } catch (Exception e) { 
      throw new RuntimeException("Exception while calling URL:" + myURL, e); 
     } 
     String sbString = sb.toString(); 
     System.out.println(sbString); 
     byte[] b = sbString.getBytes(StandardCharsets.UTF_8); 
     return b; 
    } 

但是,這給了我

401未經授權

。問題是什麼?我需要任何認證?我怎麼解決這個問題?

+1

如果/股/代理/戶外/爲你工作意味着你有一個活躍的共享連接。使用Java,您需要分別針對Alfresco存儲庫進行身份驗證。 – Teqnology

+0

我該怎麼做?我不明白。 – PRVS

+0

我不想給一個用戶名或密碼,我想接收這個參數......或者換一種方式。 – PRVS

回答

1

我解決它!對於可能有同樣問題的人,請按照此tutorial。你有包容性的,如何訪問內容。

明文:

ContentReader reader = contentService.getReader(nodeRef, ContentModel.PROP_CONTENT); 
String content = reader.getContentString(); 

二進制數據:

ContentReader reader = contentService.getReader(nodeRef, ContentModel.PROP_CONTENT); 
InputStream originalInputStream = reader.getContentInputStream(); 
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); 
final int BUF_SIZE = 1 << 8; //1KiB buffer 
byte[] buffer = new byte[BUF_SIZE]; 
int bytesRead = -1; 
while((bytesRead = originalInputStream.read(buffer)) > -1) { 
    outputStream.write(buffer, 0, bytesRead); 
} 
originalInputStream.close(); 
byte[] binaryData = outputStream.toByteArray(); 
+1

帕特里夏,請張貼在這裏從教程的主要信息,以防萬一你所提供的鏈接變成死 –

+1

做,謝謝阿圖爾! – PRVS

相關問題