在 WSO2 API 管理器中使用 POST 请求时出现错误 411
Error 411 when using POST request in WSO2 API Manager
我已经通过 WSO2 创建了一个 API API 管理器 curl GET 请求工作正常,如下所示:
但是在尝试设置 POST 请求时,我收到以下消息“错误 411:需要长度”
我尝试了不同的方法,例如禁用分块或强制内容长度 header(因为 WSO2 默认删除 header),方法是更改序列文件,如下所示,但无济于事:
奇怪的是,我使用命令提示符发出相同的 post 请求,即使我没有指定 content-length
header 也能正常工作,这表明它是自动添加的(如果我错了请纠正我):
一定是我做错了什么,你能帮帮我吗?
提前致谢。
此致,
请参阅 https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/411 了解您遇到的 411 错误。
当curl请求中没有传递content-length header时会抛出411错误。
- 您在link中分享的图片不清晰。请重新上传图片或分享curl命令和响应更方便。
- 以文本格式分享序列。
- 如果删除序列,服务器是否仍会抛出错误?
您的第二个 cUrl 请求看起来有点奇怪,原因有两个:
有效的 NGSI-v2 POST 请求类似于:
curl -L -X POST 'http://localhost:1026/v2/entities/' \
-H 'Content-Type: application/json' \
--data-raw '{
Body Goes HERE
}'
您的图像包含 headers Content-Length=aux
和 Content-Type: multipart/form-data
并且未引用 -d
元素。
我能够使用以下 inSequence(中介文件)对这个问题进行排序:
<?xml version="1.0" encoding="UTF-8"?>
<sequence xmlns="http://ws.apache.org/ns/synapse"
name="contentLengthadd">
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"></property>
</sequence>
默认情况下,WSO2 会删除 content-length header 因此您需要确保它会被添加。这个序列的作用是计算要发送的有效负载,然后添加 content-length header.
的值编号
我已经通过 WSO2 创建了一个 API API 管理器 curl GET 请求工作正常,如下所示:
但是在尝试设置 POST 请求时,我收到以下消息“错误 411:需要长度”
我尝试了不同的方法,例如禁用分块或强制内容长度 header(因为 WSO2 默认删除 header),方法是更改序列文件,如下所示,但无济于事:
奇怪的是,我使用命令提示符发出相同的 post 请求,即使我没有指定 content-length
header 也能正常工作,这表明它是自动添加的(如果我错了请纠正我):
一定是我做错了什么,你能帮帮我吗?
提前致谢。
此致,
请参阅 https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/411 了解您遇到的 411 错误。 当curl请求中没有传递content-length header时会抛出411错误。
- 您在link中分享的图片不清晰。请重新上传图片或分享curl命令和响应更方便。
- 以文本格式分享序列。
- 如果删除序列,服务器是否仍会抛出错误?
您的第二个 cUrl 请求看起来有点奇怪,原因有两个:
有效的 NGSI-v2 POST 请求类似于:
curl -L -X POST 'http://localhost:1026/v2/entities/' \
-H 'Content-Type: application/json' \
--data-raw '{
Body Goes HERE
}'
您的图像包含 headers Content-Length=aux
和 Content-Type: multipart/form-data
并且未引用 -d
元素。
我能够使用以下 inSequence(中介文件)对这个问题进行排序:
<?xml version="1.0" encoding="UTF-8"?>
<sequence xmlns="http://ws.apache.org/ns/synapse"
name="contentLengthadd">
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"></property>
</sequence>
默认情况下,WSO2 会删除 content-length header 因此您需要确保它会被添加。这个序列的作用是计算要发送的有效负载,然后添加 content-length header.
的值编号