【发布时间】:2009-09-02 19:13:15
【问题描述】:
我已经编写了一个代码来通过 java 中的套接字发送 HTTP 请求。现在我想获取我向其发送 HTTP 请求的服务器发送的 HTTP 响应。
【问题讨论】:
标签: java http sockets httprequest
我已经编写了一个代码来通过 java 中的套接字发送 HTTP 请求。现在我想获取我向其发送 HTTP 请求的服务器发送的 HTTP 响应。
【问题讨论】:
标签: java http sockets httprequest
您的要求并不完全清楚。假设您已将请求写入套接字,接下来您要做的是:
shutdownOutput() 告诉服务器请求已完成(如果您已发送内容长度,则不需要)这是一堆工作,所以我建议不要使用自己的 HTTP 请求逻辑,而是使用 Java 内置的 URLConnection,它包括检索响应内容的方法以及任何由服务器设置的标头。
【讨论】:
正如 Jon 所说,请阅读 HTTP 规范。但是 Internet 协议通常是面向行的,因此您可以一次读取一行响应。第一行将是响应。紧随其后的是标题,每行一个(除非有延续)。如果有一个正文,其中一个标题将是内容类型,这将告诉您内容是什么。如果您想阅读内容,您需要了解发送内容的不同方式。可能有内容长度标题(或没有)或者内容可能被分块(不记得我头顶的标题)。当然,内容可能是二进制而不是文本。
【讨论】:
是的! 没错!
响应应该被输入流清楚地读入 几块字节...... 因此我们可以将其翻译成可读的格式。 但这也需要更长的时间.... :(
【讨论】: