1

Javaで次のように、正当な接続を構築することにより、Webサイトからソースを読み取っています。

        final Socket sock = new Socket(hostname, 80);
        PrintWriter writer = new PrintWriter(sock.getOutputStream(), true);
            writer.println("GET /path HTTP/1.1");
            writer.println("Host: " + hostname);
            writer.println();
//...
            while (!sock.isClosed() && (line = reader.readLine()) != null) {
                System.out.println(line);
            }

出力に奇妙な行がいくつかあることを除いて、うまく機能しますが、FirefoxなどでWebサイトを閲覧するとそこにはありません。

問題は、ソースの一部の行がランダムに異なる情報のために中断されることであり、なぜそのような情報を取得してソースを台無しにするのかわかりません。

<div clas
16d0
s="span5">

また

<td style="text-align:c
2000
enter; vertical-align:middle">information</td>

これは何ですか?どうすれば修正できますか?

4

2 に答える 2

3

サーバーがチャンク データを送信しているようです。HTTP/1.01.1の代わりに送ってもらえますか? これにより、応答でチャンクが実行されないようにする必要があります。

于 2013-05-15T09:45:34.853 に答える
1

既存の HTTP リーダーを使用する代わりに、HTTP ストリームをソケットから raw で読み取っています。

本当にこれを行いたい場合は、HTTP 仕様を読む必要があります。あなたの場合、特に宗派。3.6 チャンク転送について

于 2013-05-15T09:49:52.500 に答える