解决Goland中利用HTTPClient发送请求超时返回EOF错误DEBUG

今天解决了一个疑难杂症,起因是之前代理某内部API接口,请求先是出现卡顿,超时后报EOF错误。

但奇怪的是线上测试环境确是没问题的。

Google了一下,有人说可能是由于重复请求次数过多导致,应该设置req.Close属性为true,这样不会反复利用一次连接。

尝试该操作后依然无法解决问题,遂求助同事璟文。

经过大牛的一番调查后,发现时TCP超时,连接断了。至于原因,是由于Goland设置了代理。。。Orz

不过经历这次事件我也学到了利用MAC自带的活动监视器,来查看网络行为,璟文是看到了接口的转发,才想到了可能是代理的问题。正是由于Goland的代理,才导致了连接内部API超时。

补充:golang http 请求未释放造成的错误

昨天在群里有个朋友问了这样的一个问题

遇到

http:accept error TCP too many open files in 1s

我猜应该是没有 及时的释放。他那个 lsof 发现有好多的 tcp 请求

然后看了一下他的那个代码

那个请求的关闭给注释掉了。

怪不得出现这种情况。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • Golang import本地包和导入问题相关详解

    1 本地包声明 包是Go程序的基本单位,所以每个Go程序源代码的开始都是一个包声明: package pkgName 这就是包声明,pkgName 告诉编译器,当前文件属于哪个包.一个包可以对应多个*.go源文件,标记它们属于同一包的唯一依据就是这个package声明,也就是说:无论多少个源文件,只要它们开头的package包相同,那么它们就属于同一个包,在编译后就只会生成一个.a文件,并且存放在$GOPATH/pkg文件夹下. 示例: (1) 我们在$GOPATH/目录下,创建如下结构的文件夹

  • 解决goland新建项目文件名为红色的问题

    goland如果当前project用了版本控制器,其下面新建的所有的项目默认都是加入到版本控制里面,所以项目名称和文件都是红色的. 解决办法: ctrl + alt + s 进入设置界面 –>version control 按图操作,搞定. 补充:goland 或者 idea 项目可以正常运行但是 代码从 import 就开始报红 方法一. 把项目放到gopath/src下 方法二. 即把项目的gopath设为项目目录 以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们.如有错误或未考

  • Goland 生成可执行文件的操作

    返回主页Goland通过调用go build 生成可执行文件. 默认Goland是可以执行程序,但你找不到可执行文件. 你需要自定义配置文件. 创建go build配置文件 Run kind 选Directory Directory 选你的main包所在文件夹 Output directory设置与go build -o 不相容,所以不用设置,我们使用-o参数来控制可执行文件的路径以及名字 Working directory保持默认就好 Go tool arguments 就是go build

  • 解决Goland中利用HTTPClient发送请求超时返回EOF错误DEBUG

    今天解决了一个疑难杂症,起因是之前代理某内部API接口,请求先是出现卡顿,超时后报EOF错误. 但奇怪的是线上测试环境确是没问题的. Google了一下,有人说可能是由于重复请求次数过多导致,应该设置req.Close属性为true,这样不会反复利用一次连接. 尝试该操作后依然无法解决问题,遂求助同事璟文. 经过大牛的一番调查后,发现时TCP超时,连接断了.至于原因,是由于Goland设置了代理...Orz 不过经历这次事件我也学到了利用MAC自带的活动监视器,来查看网络行为,璟文是看到了接口的

  • 解决vue2中使用axios http请求出现的问题

    使用axios处理post请求时,出现的问题解决 默认情况下: axios.post(url, params).then(res => res.data); 当url是远程接口链接时,会报404的错误: Uncaught (in promise) Error: Request failed with status code 404 我们需要实例化一个新的axios,并且设置他的消息头为'content-type': 'application/x-www-form-urlencoded' 于是得出

  • 解决layui中table异步数据请求不支持自定义返回数据格式的问题

    使用版本 layui-v2.3.0 修改: 打开layui中table.js源码 在 Class.prototype.pullData 这个方法定义内部 //获得数据 Class.prototype.pullData = function(curr, loadIndex){ var that = this ,options = that.config ,request = options.request ,response = options.response ,sort = function(

  • 解决angularjs中同步执行http请求的方法

    如下所示: self.tableParams = new NgTableParams({}, { getData: function (params) { $http.post("rest/staff/page", $scope.req).success(function (data) { if (data != null && data != undefined) { $scope.staffs = data.data; params.total($scope.tot

  • React中使用axios发送请求的几种常用方法

    目录 React中安装并引入axios依赖 使用axios进行GET请求 使用axios.get方式 使用axios(config {...}) 使用axios进行POST请求 使用axios.post 使用axios(config {...}) 同时发送多个请求 详细config对象配置项 axios的返回值对象response axios的全局配置 axios的单一实例化配置 axios拦截器的使用 React中安装并引入axios依赖 在React项目中使用axios请求,首先需要安装ax

  • jQuery通过Ajax向PHP服务端发送请求并返回JSON数据

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON在前后台交互的过程中发挥着相当出色的作用. 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuery通过Ajax向PHP服务端发送请求并返回JSON数据.阅读本文的读者应该具备jQuery.Ajax.PHP相关知识,并能熟练运用. XHTML <ul id="use

  • Golang Gin解析JSON请求数据避免出现EOF错误

    目录 环境 1. 结论 2. EOF错误复现 3. ShouldBindBodyWith 源码分析 JSON是前后端交互的重要数据类型之一,使用Gin Web框架可以很方便地将HTTP请求报文中JSON格式的Body数据解析到结构体Struct或字典Map数据结构中. 环境 go version go1.14.3 windows/amd64 github.com/gin-gonic/gin v1.6.3 1. 结论 参考 Fix #216: Enable to call binding mult

  • SQL Server 磁盘请求超时的833错误原因及解决方法

    最近遇到一个SQL Server服务器响应极度缓慢,并且出现客户端请求报错的情况,在数据库中的errorlog中出现磁盘请求超过15s才完成的error消息. 对于此类问题,到底是存储系统或者磁盘的故障,还是SQL Server 自己的问题,亦或是应用程序引发的呢?又要如何解决? 本文将对引起此问题的某一方面的因素进行简单的分析,但是无法涵盖所有潜在的可能性,因此遇到类似问题还要做具体的分析. SQL Server中的磁盘请求超时 该错误的英文版的错误信息如下: SQL Server has e

  • vue中使用$http.post请求传参的错误及解决

    目录 使用$http.post请求传参的错误 vue post请求之坑 解决方法 使用$http.post请求传参的错误 在使用$http请求后台,照常我们在后端 使用注解@PostMapper或者 @RequestMapping(value = “XXXX”,method = RequestMethod.POST)接受请求 handleAdd(node) { this.$http.post("/item/category/addCategory",{ node:node }) .th

  • 解决 JScript 中使用日期类型数据时出现类型错误的问题

    例如以下代码: 程序代码: 复制代码 代码如下: <%@LANGUAGE="JScript" CODEPAGE="65001"%>  <script language="JScript" runat="server">  Response.Cookies("xujiwei")("name") = "xujiwei";  Response.Coo

随机推荐