我编写了一个代码来通过 java 中的套接字发送 HTTP 请求。现在我想获取我向其发送 HTTP 请求的服务器发送的 HTTP 响应。
问问题
6428 次
3 回答
2
目前尚不完全清楚您的要求。假设您已将请求写入套接字,接下来您要做的是:
- 调用
shutdownOutput()
套接字以告诉服务器请求已完成(如果您已发送内容长度则不需要) - 从套接字的输入流中读取响应,根据HTTP 规范进行解析。
这是一堆工作,所以我建议不要滚动您自己的 HTTP 请求逻辑,而是使用Java 内置的URLConnection,它包括用于检索响应内容的方法以及服务器设置的任何标头.
于 2009-09-02T19:29:18.567 回答
0
对!这是正确的!
响应应该被输入流清楚地读取为几块字节......因此我们可以将其转换为可读格式。但这也需要更长的时间.... :(
于 2010-11-11T05:59:49.570 回答
0
正如 Jon 所说,请阅读 HTTP 规范。但是 Internet 协议通常是面向行的,因此您可以一次读取一行响应。第一行将是响应。紧随其后的是标题,每行一个(除非有延续)。如果有一个正文,其中一个标题将是内容类型,这将告诉您内容是什么。如果您想阅读内容,您需要了解发送内容的不同方式。可能有内容长度标题(或没有)或者内容可能被分块(不记得我头顶的标题)。当然,内容可能是二进制而不是文本。
于 2009-09-02T19:24:52.130 回答