代码之家  ›  专栏  ›  技术社区  ›  Kevin Boyd

HTTP请求响应调试

  •  0
  • Kevin Boyd  · 技术社区  · 14 年前

    我有两部电话连接到一个WiFi接入点,两部都有专用范围内的IP。 其中一部手机上运行着一个HTTP服务器,另一部手机就像一个客户端。客户机以名称的形式向服务器发送GET请求数据/ URL查询字符串中的值对。目前,服务器仅在接收查询字符串时通过http.ok发送。

    发生的情况是,客户机可能不是固定的,可能会四处移动,因此可能无法始终在WiFi访问范围内。 因为我没有得到从服务器端的客户机发送的所有数据。 我想确保发送的所有数据都是由服务器实际接收的。

    我应该执行哪种错误更正?我可以检查一些相关的HTTP错误代码或类似代码吗?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Christopher Orr    14 年前

    如果HTTP服务器在GET请求中未接收到整个查询字符串,则HTTP请求可能无效,因为这些参数位于请求的第一行。

    服务器将无法处理请求,在这种情况下,可能会返回状态代码400(错误请求)。

    如果您的客户机接收到这个请求(这看起来不太可能无法发送请求,但仍然收到响应),那么您将知道重新发送。一般来说,TCP连接的属性(如自动重传、校验和和和超时)应该是成功传递或确定失败所需的全部内容。

        2
  •  1
  •   SpliFF    14 年前

    您需要检查客户端上的超时。这取决于使用的过程/语言。

    编辑: http://wiki.forum.nokia.com/index.php/Using_Http_and_Https_in_Java_ME

    看起来您只是设置了一个超时并捕获IO错误。

        3
  •  1
  •   symcbean    14 年前

    过早优化。

    连接完整性已经在网络堆栈的下部处理。因此,如果在请求的中间有任何退出(假设它跨越了不止一个数据包),TCP堆栈将在将数据传递到服务器之前尝试恢复它们。

    如果您需要向自己证明这一点,那么只需添加一个校验和作为查询的最后一部分。

    C.