当前位置: 首页 > 面试题库 >

全局默认超时是多少

顾光明
2023-03-14
问题内容

Python 3.4。尝试在urllib.request.urlopen()中查找默认超时是多少。

它的签名是:urllib.request.urlopen(URL,data = None,[timeout,] *,cafile = None,capath
= None,cadefault = False,context = None)

该文档称其为“全局默认超时”,并查看其代码:socket._GLOBAL_DEFAULT_TIMEOUT

仍然以秒为单位的实际值是多少?


问题答案:

我怀疑这与实现有关。也就是说,对于CPython:

来自socket.create_connection

如果没有 超时 供应,全局默认超时设置返回由:FUNC:getdefaulttimeout使用。

来自socketmodule.c

static PyObject *
socket_getdefaulttimeout(PyObject *self)
{
    if (defaulttimeout < 0.0) {
        Py_INCREF(Py_None);
        return Py_None;
    }
    else
        return PyFloat_FromDouble(defaulttimeout);
}

此前在同一个文件,

static double defaulttimeout = -1.0; /* Default timeout for new sockets */

所以看起来Py_NoneakaNone是默认超时。换句话说,urlopen永不超时。至少不是从Python端开始。我猜想,如果操作系统提供的网络功能本身也有超时,那么仍然会发生超时。

编辑:哎呀,我想我根本不需要去寻找答案,因为它就在文档中。

None表示新的套接字对象没有超时。首次导入套接字模块时,默认值为None



 类似资料:
  • 在JSF2应用程序中,当文件中没有明确提到会话超时时,会话超时是什么? 更新:我正在使用Tomcat,请参阅此处有关Tomcat中默认超时的相关帖子。

  • 设置全局默认样式,将会影响所有写入单元格的样式; 函数原型 defaultFormat(resource $formatHandler) resource $formatHandler $config = ['path' => './tests']; $excel = new \Vtiful\Kernel\Excel($config); ​ $excel->fileName('tutorial

  • 问题内容: 我似乎有时会遇到一些tcp请求被“卡住”的麻烦,就像它正在等待一些响应,但连接已被“切断”,因此响应永远不会到来。这是具有默认超时的HttpURLConnection的预期行为吗?是否设置了明智的默认设置,以便默认情况下我无法进入这种奇怪的“挂起”情况? 问题答案: 出现HttpURLConnection的“默认”超时为零,表示“无超时”。 不幸的是,根据我的经验,根据您与服务器的连接

  • 问题内容: 默认情况下,PHP会话是否超时-即,如果我没有任何编码,最终在一段时间不活动后最终将“注销”用户吗? 问题答案: 这取决于服务器配置或相关指令的session.gc_maxlifetime在。 通常情况下,默认值为24分钟(1440秒),但是您的虚拟主机可能已将默认值更改为其他值。

  • 我使用springdoc openapi for java SpringBoot RESTful应用程序定义了以下: 是否可以将其全局应用于所有路径,而不必在代码中的任何地方添加注释到注释? 如果是,如何添加排除到不安全的路径?

  • 问题内容: 在我的脚本中,永远不会返回: 可能是什么原因?有补救办法吗?使用的默认超时是多少? 问题答案: 获取使用的默认超时是多少? 默认超时为,这意味着它将等待(挂起)直到连接关闭。 当您传递超时值时会发生什么?