HTTP协议中有哪些奇怪的行?

时间:2013-05-15 09:41:04

标签: http

我正在通过建立一个合法的连接从网站上阅读来源,就像在Java中一样:

        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浏览网站时,输出中有一些奇怪的行不存在。

问题是一些源代码被一些随机的不同信息打断了,我不知道为什么我会得到这样的信息来破坏我的来源。

<div clas
16d0
s="span5">

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

这是什么以及如何解决?

2 个答案:

答案 0 :(得分:3)

看起来服务器正在向您发送Chunked数据。你能发送HTTP/1.0而不是1.1吗?这应该确保不对响应执行分块。

答案 1 :(得分:1)

您正在从套接字读取HTTP流,而不是使用现有的HTTP读取器。

如果你真的想这样做,你应该阅读HTTP specification。在你的情况下尤其是教派。 3.6关于分块转移。