当前位置: 首页 > 面试题库 >

来自HTTP客户端的PUT请求后获得“ 411长度要求”

岳英耀
2023-03-14
问题内容

我正在研究实现HTTP客户端的Java程序。我测试它向服务器发送请求。GET,POST和DELETE请求工作正常。例如在POST请求后,我得到一个输出

Data extracted:
{"status":{"message":"ok"}}

数据库反映了所做的更改。

在PUT请求之后,但是我得到了指示错误的网页的以下html标记。

Data extracted:
<html>
<head><title>411 Length Required</title></head>
<body bgcolor="white">
<center><h1>411 Length Required</h1></center>
<hr><center>nginx/1.2.6</center>
</body>
</html>

因此,数据库中没有任何更改。

我发现这可能与Content-Length标头有关,但我不确定。尝试添加此标头后,我的程序等待一分钟,然后引发异常,通知它无法处理服务器响应。

如果需要,我还可以提供任何代码或堆栈跟踪。


问题答案:

是的,问题与有关Content-Length。HTTP错误411表示

服务器拒绝在没有定义Content-Length的情况下接受请求。如果客户端在请求消息中添加了包含消息主体长度的有效Content-
Length头字段,则客户端可以重复该请求。

因此,当您RequestBody在POST / PUT方法中发送空内容时,还需要发送Content- Length:0。因此,在您的请求中添加此标头。我认为此标头不会导致您将其添加到Request Object中的问题。



 类似资料:
  • 我试图通过向Fastify服务器发送PUT请求从客户端更新信息,但没有发送任何信息。也没有错误显示,只是没有变化。 POST和GET请求在客户端运行良好。 把请求工作在失眠/邮递员。 后端路由

  • 当浏览器请求网页时,它会向 Web 服务器发送特定信息,这些信息不能被直接读取,因为这些信息是作为 HTTP 请求的头的一部分进行传输的。您可以查看 HTTP 协议 了解更多相关信息。 以下是来自于浏览器端的重要头信息,您可以在 Web 编程中频繁使用: 头信息 描述 Accept 这个头信息指定浏览器或其他客户端可以处理的 MIME 类型。值 image/png 或 image/jpeg 是最常

  • 问题内容: 我有以下代码: 现在,第二个http调用失败,出现401访问被拒绝错误。不同的REST客户端(firefox插件)可以正确地从服务器获取详细信息,因此我知道服务器端没有错。我是否需要传递某种会话字符串或上次请求中获得的内容? 问题答案: 好的。我已经解决了。我只需要创建一个饼干罐。 我很惊讶golang http req / client类没有默认处理此问题。 我必须使用的代码是: 然

  • 大家好,我是EJB组件技术的新手,为了准备我的学术讨论会考试,我必须学习这一点。我不确定我能理解生命周期的所有细节。 -客户机对EJB容器的请求(但该请求如何完成?请求的位置我指的是远程“EJB容器外部”还是本地“EJB容器内部”重要与否?) -根据请求,在池中创建一个bean实例并返回给客户机,在从客户机使用后,它再次返回池中(取决于bean类型(?))。 我认为这个场景适合于无状态会话bean

  • 问题内容: 我有一个传入的对象。如何找到发出请求的客户端的 IP ?我浏览了的大多数方法和属性,似乎错过了一些东西。 问题答案: (来自RequestHandler的实例) 您可以像这样检查响应:

  • 客户端的HTTP/HTTPS请求。 进程:主进程​ ClientRequest是由EventEmitter来实现Writable Stream​ new ClientRequest(options) 作用:发起新的HTTP/HTTPS请求 options(Object | String) - options是String时即请求URL。 options 是Object时则按以下属性请求: meth