ブラウザからは接続できるのですが、HttpURLConnectionを使って接続しようとすると404が帰ってきてしまいます。URLは合っています。
接続できるようにするにはどうしたらよいですか?
以下のURLです。
http://getentry.ddbj.nig.ac.jp/search/search-e.jsp
No.1ベストアンサー
- 回答日時:
このサイトはバーチャルホストを利用しているのか、HTTPリクエストにHostヘッダを指定しないと404を返すようです。
私の手元のJDK(5.0)を使って試してみましたが、問題なくデータを取得出来ましたので、JDKのバージョンの問題かもしれません。
この回答への補足
以下のように記述してみましたがだめでした。
HOSTヘッダの指定というのはこのような事ではないという事でしょうか?
/**
* URLにアクセスするメソッド
*
* @param searchURLアクセスするURL
* @returnアクセスし、取得したHTMLの文字列
*/
public String accessURL(String searchURL)
{
System.out.println(CLASS_NAME + ".public String accessURL(String " + searchURL + ")");
BufferedInputStream input = null;
String result = "";
try
{
URL url;
HttpURLConnection urlcon;
//PROXYが""の時はPROXY無しでアクセス
if(PropertyLoader.PROXY.equals(""))
{
url = new URL(searchURL);
}
else //PROXYが設定されている時はPROXYを使ってアクセス
{
url = new URL("http", PropertyLoader.PROXY, PropertyLoader.PORT ,searchURL);
}
//urlコネクションをオープンする
urlcon = (HttpURLConnection)url.openConnection();
urlcon.setDoOutput(true);
urlcon.setAllowUserInteraction(true);
urlcon.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
if(urlcon.getResponseCode() >= 500)
{
return "";
}
//BufferedInputStreamのインスタンス化
input = new BufferedInputStream(urlcon.getInputStream());
try
{
int arraySize = 4096;
byte[] buffer = new byte[arraySize];
int v = 0;
int count = 0;
//バイトデータが送られてくる間ループを実行
while((v = input.read(buffer, count, 1024)) != -1)
{
count += v;
if(count >= (buffer.length - 1024))
{
byte[] newb = new byte[count * 2];
System.arraycopy(buffer, 0, newb, 0, buffer.length);
buffer = newb;
}
}
result= new String(buffer, 0, count, "EUC_JP");
}
catch(OutOfMemoryError e)
{
return "";
}
}
catch(IOException e)
{
return "";
}
catch (Exception e)
{
return "";
}
finally
{
try
{
if(input != null)
{
//inputのクローズ
input.close();
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
return result;
}
Bonjinさん
ありがとうございます!!
試してみます!!また、質問するかもしれませんがその時はまた、ご教授くださいm(_ _)m
No.2
- 回答日時:
ANo.1さん、横槍失礼します。
HOSTヘッダといったら、HOSTヘッダです。
[HOST: http://hostname/]
とかいうやつです。
HTTP/1.1仕様から必須です。
http://www.studyinghttp.net/header
これを参照の事。
この回答への補足
PED02744さんありがとうございます。
下記の様にやったのですが、
urlcon.setRequestProperty("Host", "http://getentry.ddbj.nig.ac.jp/");
駄目でした・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(インターネット接続・インフラ) 有線LANでGoogleサイトのみ接続できません 2 2022/06/10 09:14
- 英語 Results: In total, 5,963 titles were identified wi 4 2022/12/29 21:29
- FTTH・光回線 NTTフレッツ光のインターネット接続について 2 2022/06/06 02:28
- ハッキング・フィッシング詐欺 JS/Packed.Agent.N が検出されたサイトにアクセスするとどうなる? 4 2022/08/12 18:28
- ドメイン・サーバー・クラウドサービス FileZillaを使用してwpXサーバーに接続できない 2 2022/03/29 21:02
- Yahoo!メール iPhoneでの操作を教えてください。 Yahoo!メールに来たサイトにアクセス(Yahoo!メール 1 2023/08/26 09:19
- その他(ブラウザ) Win11でブラウザでのネットブラウズができなくなった 4 2022/12/05 18:03
- OCN光 VDSL回線での不具合 ネット回線変えるべきか? 3 2023/01/07 23:14
- プロバイダー・ISP プロバイダを2社契約した場合 2 2022/12/06 21:24
- その他(OS) Windows以外のOSでhttps://login.live.com/にアクセス出来無い 3 2022/04/06 12:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ただし,その件は」の「ただ...
-
単三の漏電ブレーカーを単二で...
-
モンストのマルチプレイほぼほ...
-
エアコン配線の途中接続はなぜ...
-
Tera Termを起動して新しい接続...
-
ディズニープラスの繋ぎ方
-
VBAをOracleClientがインストー...
-
野良Wi-Fiに接続してしまいまし...
-
ABEMAって接続悪いですか? ず...
-
bebirdというイヤースコープを...
-
自分のスマホゲームの不具合が...
-
VPNのオンデマンド接続とはなん...
-
VBAで「クエリと接続」の画面を...
-
FileZillaを使用してwpXサーバ...
-
今更ですが、ドラクエ9について...
-
ワードに張り付けたURLが開かない
-
内臓SSDの換装について(インタ...
-
蛍光灯安定器の絶縁測定につい...
-
フリーWi-FiでEDGEだと時間切れ...
-
SSDはなくても正常でしょうか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ただし,その件は」の「ただ...
-
Tera Termを起動して新しい接続...
-
エアコン配線の途中接続はなぜ...
-
単三の漏電ブレーカーを単二で...
-
bebirdというイヤースコープを...
-
VPNのオンデマンド接続とはなん...
-
IPアドレスは定期的に変わるも...
-
一般相対性理論の接続
-
モンストのマルチプレイほぼほ...
-
Wi-Fiと位置情報バレについて
-
蛍光灯安定器の絶縁測定につい...
-
Aterm BL1000HWでの奇妙なWiFi...
-
会社説明会に遅刻してしまいま...
-
M.2 PCI Express 接続 M.2 PCIe...
-
ワードに張り付けたURLが開かない
-
ANYDESK 画像が転送されない
-
太陽光発電の配線用ELBについて
-
ワイハイ接続について、 例えば...
-
TeraTermマクロで入力した文字...
-
フリーWi-FiでEDGEだと時間切れ...
おすすめ情報