[解決済み] java.io.IOException: Server returned HTTP response code: 403 for URL [重複].
2022-02-07 06:28:24
質問
私のコードはこんな感じです。
URL url;
URLConnection uc;
StringBuilder parsedContentFromUrl = new StringBuilder();
String urlString="http://www.example.com/content/w2e4dhy3kxya1v0d/";
System.out.println("Getting content for URl : " + urlString);
url = new URL(urlString);
uc = url.openConnection();
uc.connect();
uc.getInputStream();
BufferedInputStream in = new BufferedInputStream(uc.getInputStream());
int ch;
while ((ch = in.read()) != -1) {
parsedContentFromUrl.append((char) ch);
}
System.out.println(parsedContentFromUrl);
しかし、ブラウザからアクセスした場合は問題ないのですが、Javaプログラムからアクセスしようとすると、Expectionがスローされます。
java.io.IOException: Server returned HTTP response code: 403 for URL
解決策とは?
どのように解決するのですか?
以下のコードを間に追加してください。
uc.connect();
と
uc.getInputStream();
:
uc = url.openConnection();
uc.addRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
しかし、特定のタイプのユーザーエージェントだけを許可するのは良いアイデアです。そうすることで、ウェブサイトの安全性と帯域幅の使用量を抑えることができます。
コンテンツや帯域を盗用されたくない場合、サーバーからブロックしたい悪質な「ユーザーエージェント」がある可能性があります。しかし、上の例で見たように、ユーザーエージェントは偽装することができます。
関連
-
[解決済み】Android Studio クラス org.codehaus.groovy.runtime.InvokerHelper を初期化できませんでした。
-
[解決済み] java.sql.SQLException: ユーザー 'root'@'localhost' (using password: YES) のためのアクセスが拒否されました。
-
[解決済み】代入の左手は必ず変数 CharAt
-
[解決済み】不正なエスケープ文字"㊧"について
-
[解決済み】Javaの部分文字列:「文字列のインデックスが範囲外」。
-
[解決済み] intellijが自動配線リポジトリにタイプのBeanが見つからないと不正確な発言をする件
-
[解決済み] JavaでSSLピアが正しくシャットダウンされない
-
[解決済み】予期しない型エラー
-
[解決済み】Javaの".class expected "について
-
[解決済み] Eclipseが起動できない - Javaは起動したが終了コード=13を返した
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Javaの".class期待値"
-
[解決済み】"|="の意味は何ですか?(パイプ等号演算子)
-
[解決済み】指定された子にはすでに親がいます。先に子の親に対してremoveView()を呼び出す必要がある(Android)
-
[解決済み】宣言されたパッケージが期待されるパッケージと一致しない ""
-
[解決済み】Javaの部分文字列:「文字列のインデックスが範囲外」。
-
[解決済み】メソッド本体がない、またはJavaで抽象的な宣言をする
-
[解決済み】java 'jar'が内部コマンドまたは外部コマンドとして認識されない。
-
[解決済み】純粋なJUnitテストにVisibleForTestingを使用する方法
-
[解決済み】Java: GZIPInputStreamの作成に失敗しました。GZIP形式ではありません
-
[解決済み】 executeQuery()でデータ操作文が発行できない。)