问题描述
在调用APIM请求时,遭遇请求返回411报错,提示 HTTP Error 411. The request must be chunked or have a content length.
问题解答
根据错误信息(HTTP Error 411. The request must be chunked or have a content length)。问题的原因为请求没有携带Content-Length。上图中使用的 curl 指令发送请求,没有自动补齐一些请求头部信息 (如"request-start-time", "Connection","Content-Length", "Content-Type", "Accept","Accept-Encoding" 等)。
在HTTP协议中,411状态码表示“需要内容长度(Length Required)”。
虽然在APIM中可以通过Set-Header策略来添加一些请求Header信息,但是对于特殊的header却不能添加,正好包含了Content-Length!
基于以上测试,当对APIM的请求中缺少了Content-Lenght请求头时,无法从APIM服务端进行设置缓解411报错。只能从请求的发送端入手,为发送的请求添加该字段!
参考资料
APIM Policy -- Set header : https://learn.microsoft.com/en-us/azure/api-management/set-header-policy
411 Length Required: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/411
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!