OpenResty中post请求body数据部分丢失问题解决

在使用OpenResty的resty.http进行post请求时,发现body中的数据部分丢失。
经过调查发现,原来是因为body在传入到nginx后,代码中有对body内容进行修改的操作,如下图:

OpenResty中post请求body数据部分丢失问题解决_第1张图片

查看resty.http源码后发现
OpenResty中post请求body数据部分丢失问题解决_第2张图片

原来body的Content-Length的长度如果不为空则不会重新计算长度,因此body内容会丢失。所以修改方式为:
在进行post请求之前重新计算body长度并设置Content-Length

--最简单的方法是将content-length设置为nil,让resty.http重新计算
headers["content-length"]=nil

你可能感兴趣的:(OpenResty,lua,OpenResty,http,nginx)