Javaを使用してインターネットからファイルをダウンロードしたいのですが、時々私のプログラムに401エラーが表示され、取得できません。Javaの401エラーにもかかわらずファイルをダウンロードするには
このファイルへのリンクをHTMLウェブサイトに置くと面白いですが、右クリックして「名前を付けて保存」をクリックするとダウンロードできます。
Javaで同じ効果を得るにはどうすればよいですか?
Javaを使用してインターネットからファイルをダウンロードしたいのですが、時々私のプログラムに401エラーが表示され、取得できません。Javaの401エラーにもかかわらずファイルをダウンロードするには
このファイルへのリンクをHTMLウェブサイトに置くと面白いですが、右クリックして「名前を付けて保存」をクリックするとダウンロードできます。
Javaで同じ効果を得るにはどうすればよいですか?
ブラウザが実際に送信する内容、特にヘッダーを確認し、同じことを確認します。クッキー、認証されたフィールド、および参照フィールドは興味深いかもしれません。
権限がない場合は、最初にjavaを使用してWebサイトにアクセスし、セッションCookie(該当する場合)を取得する必要があります。
htmlページにアクセスすると、サーバーがダウンロードを許可したり、時間単位あたりのダウロード数が制限されたりすることさえあります。最後のケースでは、あなたができることは何もありません。 Wikipediaから
:
401不正禁止403に類似するが、具体的に使用するための
認証が可能であるが が失敗したか、まだ提供されていない[2] 応答には、 WWW-Authenticateヘッダーフィールド が含まれており、要求されたリソースの に該当する挑戦が含まれている必要があります。基本 アクセス認証とダイジェスト アクセス認証を参照してください。またはブラウザが持つ取引を行うことをいくつかのサーバー関連の問題 -
はどうやらJavaコードは扱っていないいくつかの認証関連の問題があります。私たちがあなたにもっと手伝うことができるようにするには:
あなたのコードの関連部分を私たちに提供してください。
あなたのリンクに関する情報を私たちに提供してください。リンクが単純な静的コンテンツを参照していない場合、間違っている可能性のある約100万種類のものがあります。探すために
いくつかの点:
Javaおよびブラウザセッションの間で異なっているものを見つけるために、ネットワークスニファ(例えばWireshark)を使用します。
Javaコードで送受信されたすべてのヘッダーを印刷し、ネットワークスニファまたはLive Http Headersの内容と比較します。
コードで認証Cookieが正しく処理されていますか?
すでにブラウザからリンクにアクセスしている場合、Javaコードは正常に機能しますか?