1

ドキュメントのリストへの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に設定する提案をありがとうございます。2、3、4、5で始まるHTTP応答コードがたくさんあります。これをどのように解釈できるか説明していただけますか?私は次の解釈を想定しています。私が間違っている場合は訂正してください。

  1. 2で始まる応答コードは、ユーザーがドキュメントにアクセスできることを意味します。
  2. 3で始まる応答コードは、実際のURLに別のリクエストを行うためにさらにロジックを追加する必要がありますか?これを自動的に行う方法のコードはありますか?
  3. 401の応答コードは、ユーザーがアクセスできないことを示します。
  4. 5で始まる応答コードは、ホストサーバーに問題があることを示しています。
4

2 に答える 2

0

どうですか

httpURLConnection.setRequestMethod("HEAD");

?

于 2009-10-20T17:31:41.443 に答える
0

ダウンロードするとき、実際にはオーバーヘッドはありません。認証されていない場合、サーバーはファイルを送り返しません。

大量のデータを投稿する場合は、続行する前に 100-Continue を使用して、投稿が許可されていることを確認してください。このようにできます。

httpURLConnection.setRequestProperty("Expect", "100-continue");
于 2009-10-20T17:42:01.017 に答える