2009-10-20 4 views
1

문서 목록에 대한 URL이 있으며 사용자가 해당 문서에 액세스 할 수 있는지 확인하고 싶습니다. 이러한 문서는 액세스 할 때 사용자 로그인과 암호가 필요합니다. 서버가 NTLM 인증을 요구하기 때문에 JCIFS API를 사용하여 문서에 대한 URL 연결을 만들고 HTTP 응답 코드를 확인합니다. 응답 코드가 401이면 사용자가 액세스 권한이 없음을 확인하는 중입니다. 이 방법을 사용하면 문서가 모든 콘텐츠를 다운로드합니까? 응답 시간은 문서의 크기에 따라 다릅니 까? 더 나은 접근 방법이 있습니까? 미리 감사드립니다. 귀하의 답변사용자가 URLConnection을 사용하여 문서에 액세스 할 수 있는지 확인하십시오.

Config.setProperty("jcifs.smb.client.username", "<user_name>"); 
Config.setProperty("jcifs.smb.client.password", "<password>"); 
URL spURL = new URL("http://<host_name>/<folder_name>/<file_name>"; 
HttpURLConnection httpURLConnection = (HttpURLConnection) spURL 
     .openConnection(); 
NtlmHttpURLConnection ntlmHttpURLConnection = new NtlmHttpURLConnection(
       httpURLConnection); 
int resCode = ntlmHttpURLConnection.getResponseCode() 

감사합니다. 문서를 다운로드 할 요구가 없지만 사용자가 문서에 대한 액세스 권한이 있는지 여부 만 확인하면됩니다. 나는 응답 측면에서 더 빠르며 문서의 크기에 따라 변하지 않는 해결책을 찾고있다.

안녕하세요, 요청 유형을 HEAD (으)로 설정해 주셔서 감사합니다. 2, 3, 4, 5로 시작하는 HTTP 응답 코드가 많이 있습니다. 어떻게 인터 레이스 할 수 있는지 설명해 주시겠습니까? 나는 다음 intepretation을 추측하고있다; 내가 틀렸다면 나를 바로 잡아주세요.

  1. 2로 시작하는 응답 코드는 사용자가 문서에 액세스 할 수 있음을 의미합니다.
  2. 3으로 시작하는 응답 코드는 실제 URL에 다른 요청을하기 위해 추가 논리를 추가해야합니까 ?? 이것이 어떻게 자동으로 수행 될 수있는 코드가 있습니까?
  3. 401이 포함 된 응답 코드는 사용자가 액세스 권한이 없음을 나타냅니다.
  4. 5로 시작하는 모든 응답 코드는 호스트 서버에 문제가 있음을 나타냅니다.

답변

0

방법에 대한

httpURLConnection.setRequestMethod("HEAD"); 

?

0

다운로드 할 때 실제로 오버 헤드가 없습니다. 승인되지 않은 경우 서버는 파일을 다시 보내지 않습니다.

많은 양의 데이터를 게시하는 경우 100-Continue를 사용하여 계속 진행하기 전에 허용해야합니다. 이렇게 할 수 있습니다.

httpURLConnection.setRequestProperty("Expect", "100-continue"); 
관련 문제