如何通过java中的socket获取HTTP响应?

时间:2009-09-02 19:13:16

标签: java http sockets httprequest

我编写了一个代码,用于通过java中的套接字发送HTTP请求。现在我想获取由我发送HTTP请求的服务器发送的HTTP响应。

3 个答案:

答案 0 :(得分:2)

你所要求的并不完全清楚。假设您已将请求写入套接字,那么您接下来要做的就是:

  • 在套接字上调用shutdownOutput()告诉服务器请求已完成(如果您已发送内容长度则不需要)
  • 从套接字的输入流中读取响应,并根据HTTP spec进行解析。

这是一堆工作,所以我建议不要滚动你自己的HTTP请求逻辑,而是使用内置于Java的URLConnection,并包括检索响应内容的方法。作为服务器设置的任何标头。

答案 1 :(得分:0)

Jon说,请阅读HTTP规范。但是Internet协议通常是面向行的,因此您可以一次读取一行响应。第一行是响应。接下来将是标题,每行一个(除非有延续)。如果有一个正文,其中一个标题将是内容类型,这将告诉您内容是什么。如果您想阅读内容,您需要了解内容的不同发送方式。可能有一个内容长度标题(或没有)或内容可能被分块(不能记住我头顶的标题)。当然,内容可能是二进制而不是文本。

答案 2 :(得分:0)

烨! 那是对的!

响应应该由输入流明确地引入 几块字节...... 因此我们可以将其翻译成可读格式。 但这也需要更长的时间.... :(