我们有一个文档列表的URL,我们想检查用户是否可以访问这些文档。这些文档需要用户登录和密码才能访问。由于服务器需要NTLM身份验证,因此我们使用JCIFS API建立与文档的URL连接并检查HTTP响应代码。如果响应代码是401,那么我们确认用户没有访问权限。使用这种方法,文档是否下载了所有内容?响应时间是否因文档大小而异?有更好的方法吗?提前谢谢。
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的建议。有很多HTTP响应代码以2,3,4和5开头。你能解释一下我如何解释这个吗?我假设以下解释;如果我错了,请纠正我。
答案 0 :(得分:0)
怎么样
httpURLConnection.setRequestMethod("HEAD");
答案 1 :(得分:0)
下载时,实际上没有任何开销。如果您未获得授权,则服务器不会将文件发回。
如果要发布大量数据,则应使用100-Continue确保在继续之前允许这样做。你可以这样做,
httpURLConnection.setRequestProperty("Expect", "100-continue");