1

curl -kvs -X POST https://xxxx-xxxx.azure-api.net/*******/reports -k -H "帐户:********" -H "Ocp- Apim 订阅密钥:***********"

在进行此卷曲时,我收到错误消息为 HTTP/1.1 411 Length Required。我知道我们可以通过将 content -length 标头添加到 curl 来解决此问题。但是我们可以从 azure apim 级别做一些事情来修复它吗?

提前致谢。

4

1 回答 1

1

根据 HTTP 1.1 协议,当向端点发出 HTTP 请求时,发出的请求应该提供 Content-Length 标头。以下是标准的摘录

Content-Length entity-header 字段指示发送给接收者的实体主体的大小,以十进制的八进制数表示,或者在 HEAD 方法的情况下,将发送的实体主体的大小具有请求是一个 GET。应用程序应该使用这个字段来指示消息体的传输长度,除非这被第 4.4 节中的规则禁止。

   Content-Length    = "Content-Length" ":" 1*DIGIT

一个例子是

   Content-Length: 3495

此标头用作确定消息长度的逻辑的一部分。此逻辑在 RFC 2616 的第 4.4 节中进行了解释。您可以在 RFC 2616 第 4.4 节消息长度中阅读有关它的信息

如果您使用过 POSTMAN 之类的 API 测试工具,您会看到它会自动将标头添加到您发送的请求中。Azure API 管理开发人员门户也是如此,如果您检查源自门户的网络流量,您会看到添加到请求中的内容长度。

简而言之,您不应该避免发送Content-Length标头。

于 2020-07-23T01:53:43.703 回答