

あるWebサイトのあるコンテンツ(Flash)をJavaで取得しています。
Javaから、
URL url = new URL( "http://xxx/sample.swf" );
URLConnection conn = url.openConnection();
conn.connect(); ←ここで1分後に"connect timeout"になります。
・同じマシンのブラウザから"http://xxx/sample.swf"は表示できます。(レスポンス早い)
・タイムアウト値は1分に設定しています。(30秒でも2分でも30分でも×)
・conn.getInputStreamでも"connect timeout"になります。
・url.openStreamでも"connect timeout"になります。
・このサーバのFlash以外の、別のサーバのFlashは問題なく取得できます。
何か原因は考えられますでしょうか?
サーバ側でHTTPとIPの制限はしていません。
(ブラウザで見れるので↑の設定はあってると思うのですが・・。)
No.1ベストアンサー
- 回答日時:
ブラウザから以外のアクセスを拒絶するサイトもありますし、またそんなサイトでもuser-agentを詐称すればjava.netで自作したプログラムでアクセス成功!の場合もあります。
setConnectTimeout()は試されましたか?ご回答ありがとうございます。
サーバ側のuser-agentの制限を調べてみたのですが、特に規制していませんでした。
タイムアウトの設定は30秒~30分まで試したのですがいずれもNGです。
リクエスト時の、サーバログを見たのですが、リクエスト自体来ていないようです。
ブラウザからは正常にみれるため、原因がわからない状態です・・・。
No.2
- 回答日時:
> リクエスト自体来ていない
そうすると、常識的にはクライアント側のバグですね。
以下の、もっともシンプルなプログラムを動かしてみてください。
(このプログラムでリソースの取得ができることは、確認済みです。)
これでだめなら、サーバの不具合ってことになりますね。
当方、現時点ではどっちのコードも設定も見ていないので、一般的なことしか言えません。
-----------------------------------------------------
import java.io.*;
import java.net.*;
public class GetUrlResource{
static final int BUFF_SIZE = 4096;
public static void main(String [] args){
byte[] buffer = new byte[BUFF_SIZE];
String urlStr = "http://xxx/sample.swf";
String localFile = "sample.swf";
try{
URL url = new URL(urlStr);
InputStream is = url.openStream();
FileOutputStream os = new FileOutputStream(localFile);
getResource(is, os, buffer, BUFF_SIZE);
is.close();
os.close();
}
catch (MalformedURLException me){
me.printStackTrace();
}
catch (IOException ie){
ie.printStackTrace();
}
}
static void getResource(InputStream is, OutputStream os,
byte[] buffer, int bufsiz) throws IOException{
int n;
while ((n = is.read(buffer)) != -1){
os.write(buffer, 0, n);
}
}
}
----------------------------------------------------
ご回答ありがとうございます。
当方も上記に似たクラスで実装しており、
別のサーバのコンテンツは取得可でした。
そこで色々調べてみたところ、途中のゲートウェイで、
送信リクエストを制限設定していたようでした。
設定を解除し、無事動くことを確認しました。
お騒がせしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
- C言語・C++・C# condaコマンドに対応したプロキシ設定が思うようにならないようです。 2 2022/04/11 17:15
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- PHP PHPを使って、別サイトの一部を取得して表示したいのです。。 1 2023/01/18 21:45
- その他(開発・運用・管理) Windowsバッチファイルでリモートデスクトップを自動ログインするが確認画面が出る対処方法 1 2022/12/19 15:48
- その他(インターネット接続・インフラ) ブラウザにIPアドレス入力した時 1 2022/06/16 19:08
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- PHP Q&Aサイトを作成していてURLの生成方法について迷っているのでアドバイスお願い致します 1 2023/08/10 16:42
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlの環境変数 ENV{'REMOTE_A...
-
クライアントのIPとマシン名を...
-
スマホからのアクセスをリダイ...
-
月の第一週とは
-
エクセルで相対パスの書き方を...
-
DBを10件毎に表示ページング...
-
毎○曜日って、使いますか?
-
週2回のペースって だいたい何...
-
エクセルで毎月第2週日の水曜日...
-
Perl の外部モジュールの利用方法
-
モジュールを使ってリクエスト...
-
[Excel] ある日の曜日が当月の"...
-
raspberrypiから外部サーバーへ...
-
曜日派?日付派??
-
VBAでExcelのヘッダーに文字列+...
-
上位階層のディレクトリパスを...
-
cgiとplとpm
-
曜日と曜の使い分けがわかりま...
-
HTTPヘッダの取得方法
-
第○曜日であるかを取得する関数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クライアントのIPとマシン名を...
-
perlの環境変数 ENV{'REMOTE_A...
-
webサーバでクライアントを特定...
-
HttpClientを利用してのサービ...
-
プロキシサーバ経由を拒否したい
-
社外からのアクセスかどうか判...
-
AMAZON APIに接続するプログラ...
-
mod_rewriteの環境変数を埋め込...
-
簡単な例文教えて
-
Outlook Expressの受信トレイに...
-
BASE64でエンコードしてPOSTし...
-
JavaScriptによるcookieの取得
-
グローバルIPアドレスの取得。
-
Androidアプリで外部データベー...
-
ブラウザセッションを自動で切...
-
外部サーバのxxx.htmlを読み込...
-
ホームページの更新日時の取得
-
Perlでの$ENV{REMOTE_ADD}の信...
-
LOGON_USER
-
ネットワーク上のサーバーの空...
おすすめ情報