在使用LuaSocketHttp的时候,如果如下使用:
local remoteUrl
...
while 1 do
local response_body = {}
http.TIMEOUT = 1
local status, code, response_headers = vcHttp.request
{
url = remoteUrl;
method = "GET";
sink = ltn12.sink.table(response_body);
}
...
end
每次循环结束时,要及时将response_body释放,即:response_body = nil。修改后代码如下:
local remoteUrl
...
while 1 do
local response_body = {}
http.TIMEOUT = 1
local status, code, response_headers = vcHttp.request
{
url = remoteUrl;
method = "GET";
sink = ltn12.sink.table(response_body);
}
...
response_body = nil
end
如果不释放response_body,下次操作时response_body的值不会改变,还是缓存上一次response的body。