【问题标题】:Attempt to read a non-existent global 'PROXY' Lua尝试读取不存在的全局“代理”Lua
【发布时间】:2014-11-26 19:23:44
【问题描述】:

我是 Lua 的新手,有人能解释一下错误吗?

我正在尝试使用:

local jid_bare = require "util.jid".bare;
local http = require "socket.http";
local json_encode = require "util.json";
local mime = require("mime")

当代码执行时,我会收到以下警告,然后是堆栈跟踪:

Attempt to read a non-existent global 'PROXY'
stack traceback:
    /usr/share/lua/5.1/socket/http.lua:189: in function 'adjusturi'
    /usr/share/lua/5.1/socket/http.lua:247: in function 'adjustrequest'
    /usr/share/lua/5.1/socket/http.lua:295: in function 'trequest'
    /usr/share/lua/5.1/socket/http.lua:345: in function </usr/share/lua/5.1/socket/http.lua:331>
... and so on

我没有使用任何代理,我该如何解决?

【问题讨论】:

  • 我认为这是韵律锁定全局变量。您是否有理由尝试使用 luasocket 的 http 模块而不是韵律 http 的东西?该错误还来自需要代码还是来自其他代码?
  • 我使用 luasockets 是因为我需要向外部 API 服务器发送一些数据的 POST。我真的很抱歉,但我不明白第二个问题。我正在尝试制作模块以将一些数据转发到外部 API,它似乎正在工作,但我在日志中收到此警告。
  • LuaSocket rc1 中有 bug。它已经在master中修复了。尝试将 http.lua 替换为新的。
  • 我实际上修复了那个错误 :) github.com/diegonehab/luasocket/commit/… Prosody 开发人员应该更新他们的 LuaSocket。与此同时,rawset 解决方法有效。
  • 实际上还没有发布带有该修复的版本,请参阅github.com/diegonehab/luasocket/issues/110

标签: http lua


【解决方案1】:

我只是在与 Prosody 开发人员谈论它。这只是一个 Prosody 特定的警告,可以通过在模块中添加 rawset(_G, "PROXY", false) 来静音。

【讨论】:

    猜你喜欢
    • 2019-03-01
    • 2013-03-28
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 2020-08-02
    相关资源
    最近更新 更多