電子書籍の厳選無料作品が豊富!

以下のようなコードを書いてみましたところ、httpサイト (1) からはhtmlソースが全行取得できたのですが、httpsサイト (2) からは途中約1/3以降からしか得られませんでした。

ところが、httpsサイトでも (3) を試したところ全部取得できます。何がいけないのか~何を調べればよいのか~が分からず困惑しております。ご教示いただけましたら幸いです。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.net.URL;
import java.net.HttpURLConnection;
import javax.net.ssl.HttpsURLConnection;

public class GetHtmlTest {

public static void main(String[] args) {

try {
URL u = new URL("http://stocks.finance.yahoo.co.jp/stocks/detail/ … // (1)
HttpURLConnection con = (HttpURLConnection) u.openConnection();// (1)
InputStreamReader isr = new InputStreamReader(con.getInputStream(), "UTF-8");// (1)

//URL u = new URL("https://www.sbisec.co.jp/ETGate");// (2)
//HttpsURLConnection con = (HttpsURLConnection) u.openConnection();// (2)
//InputStreamReader isr = new InputStreamReader(con.getInputStream(), "SJIS");// (2)

//URL u = new URL("https://www.monex.co.jp/Login/00000000/login/ipa … (3)
//HttpsURLConnection con = (HttpsURLConnection) u.openConnection();// (3)
//InputStreamReader isr = new InputStreamReader(con.getInputStream(), "SJIS");// (3)

BufferedReader br = new BufferedReader(isr);

String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line).append(System.getProperty("line.separator"));
}

System.out.println(sb.toString());
br.close();
isr.close();

} catch (IOException e) {
e.printStackTrace();
}
}
}

A 回答 (1件)

httpsだからではなくて、途中でリダイレクトされてるとか、隠しパラメータとか、cookieとかをつけ忘れてるとか、ってところでしょうね。


証券会社のサイトは、たいてい、けっこう複雑な作り
なってますよ。(あなたのように、自動ログインしようとする人に対する対策かな)
    • good
    • 0
この回答へのお礼

ありがとうございます。隠しパラメータにcookieですか。もう少し調べてみます。

お礼日時:2013/12/08 09:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!