【问题标题】:What are these weird lines in HTTP protocol?HTTP 协议中这些奇怪的行是什么?
【发布时间】:2013-05-15 19:22:21
【问题描述】:

我正在通过建立合法连接从网站读取源代码,就像在 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>

这是什么,我该如何解决?

【问题讨论】:

标签: http


【解决方案1】:

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

【讨论】:

  • 到目前为止这似乎有效,并且是实现它的最快方法
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2017-08-15
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多