2009-09-02 53 views

回答

0

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

2

这并不完全清楚你要求什么。假设你写请求到插座,你会想要做的下一件事是:

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

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

+1

+1为“不要自己做这个。”(你不需要关闭输出,如果你已经发送了一个内容的长度当然。 )还有其他的库可用。具有讽刺意味的是,OP在昨天询问了他们,​​所以我不确定他们为什么直接将请求写入套接字... –

+0

当然,我自己在C++中完成了一次这绝对不是乐趣,不是火箭科学,但也不好玩。 –

0

yup! 没错!

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

相关问题