go net/http client 有些参数并不是并发安全的?

wnanbei · · 1777 次点击
jan-bar
想要拥有,必定付出。
我有个不成熟的建议,修改go源码。我有几个项目都是修改go源码编译的,反正编译出来是可执行程序,写个readme解释一下就行了。如果有代码洁癖,就去github提issue吧,支持的人多,说不定go团队下个版本就支持咯。
#7
更多评论
这个好像是无需考虑的? 函数中并没有用到共享的变量, 都是通过参数传进来的. 这种应该是并发安全的.前提是传入的参数并非全局变量
#1
因为重定向次数写死在这个函数里了,要改只能改这个函数。 这个问题的起因主要就以下几点: 1. 因为 Golang net/http 发起请求的时候,是没有办法为单个 Request 请求设置重定向、代理、超时这些设置的,要设置只能设置到 Client 上。 2. Client 底层有连接池,所以需要复用,创建多个新的 Client 来使用开销会很大。 3. 目前需要在并发的情况下更改单个 Request 请求的重定向、代理、超时等设置,但因为 1 的原因只能改 Client。 4. 但复用 Client 的话,Client 的值就类似一个全局变量,在这个协程中更改了,会影响另一个协程中的请求。 情况大致是这么个情况,目前想问的就是有没有更好的解决办法。
#2