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

如果我不回应,身体会怎样?

殳飞扬
2023-03-14
问题内容

在Go中,我有一些http响应,有时我忘了打电话:

resp.Body.Close()

在这种情况下会发生什么?会有内存泄漏吗?defer resp.Body.Close()获取响应对象后立即放入是否安全?

client := http.DefaultClient
resp, err := client.Do(req)
defer resp.Body.Close()
if err != nil {
    return nil, err
}

如果有错误,可能resp还是resp.Body无效怎么办?


问题答案:

在这种情况下会发生什么?会有html" target="_blank">内存泄漏吗?

这是资源泄漏。该连接不会被重用,并且可以保持打开状态,在这种情况下,文件描述符将不会被释放。

获取响应对象后立即放入defer resp.Body.Close()是否安全?

否,请按照文档中提供的示例操作,并在检查错误后立即将其关闭。

client := http.DefaultClient
resp, err := client.Do(req)
if err != nil {
    return nil, err
}
defer resp.Body.Close()

http.Client文档中:

如果返回的错误为nil,则响应将包含一个非零的Body,希望用户将其关闭。如果未同时将Body读取到EOF并关闭,则客户端的基础RoundTripper(通常为Transport)可能无法将与服务器的持久TCP连接重新用于后续的“保持活动”请求。



 类似资料:
  • 我有一个子组件,它有几个带有以下CSS属性的选项卡: 当我点击后退按钮时,它会返回到上一个选择的选项卡,这很好,但是焦点不会从当前的选项卡中移除,除非我点击屏幕的任何其他部分。 如何去除焦点?

  • 我在页面上使用动态包含: 这是标题中的重要部分。jsp: 我的主页源上的结果是: 我用这个: 如果我从另一个页面导入JSTL,有人知道如何使用它吗? 谢谢,佐尔坦

  • vue3 devtools 不会亮了怎么回事? 重启过电脑 浏览器了 插件已经装上了 跟着官方文档装的 package.json 官方的方案都试过了

  • 本文向大家介绍Dubbo启动时如果依赖的服务不可用会怎样?相关面试题,主要包含被问及Dubbo启动时如果依赖的服务不可用会怎样?时的应答技巧和注意事项,需要的朋友参考一下 Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,默认 check="true",可以通过 check="false" 关闭检查。

  • 问题内容: 如果您获取一个从未明确指定serialVersionUID的旧可序列化对象,然后将serialVersionUID添加到该对象,会发生什么?在我看来,下一次由最终用户更新应用程序时,它将尝试反序列化磁盘中的数据,发现serialVersionUID不匹配,用服务器/ db /中的新数据覆盖数据,然后再执行此操作很好。我对这个假设是否正确?在执行此操作时,我是否还要警惕其他问题? 问题答

  • 问题内容: 如果某些东西无法正常工作,或者某些插件未在我的Eclipse中正确加载,我通常会建议您以干净模式打开Eclipse。 那么,如何在干净模式下运行?如果我这样做会怎样? 问题答案: 它能做什么: 如果设置为“ true”,则OSGi框架和eclipse运行时使用的所有缓存数据都将被清除。这将清除用于存储捆绑包依赖关系解析和Eclipse扩展注册表数据的缓存。使用此选项将强制eclipse