req
req copied to clipboard
Simple Go HTTP client with Black Magic
Hi👋 I am using this library recently, and found that the configuration does not seem to support the length limit on the response body? As background, I'm using this library...
在使用 Debug 模式时,是否有计划支持打印出 cURL 格式的请求?? @imroc
目前用户自定义的前置中间件执行时机在系统前置中间件之前,会导致在前置中间件中无法获取实际请求的参数,如 一些 API 需要使用参数做签名,目前只能通过 Client 中间件,但是项目中 Client 的链路追踪中间件会被设置最上层,其他 Client 会基于一个基础 Client Clone 出来,导致如果在新增的 Client 中间件中追加请求参数(如:签名 header 、 params 等),链路追踪中间件无法收集这些参数,除非是在响应时又覆盖请求参数,这样的做法不太好,是否可以提供一种方式方式,在解析请求参数之后, Client 中间件执行之前修改请求参数呢? https://github.com/imroc/req/blob/24b0c84d2d4dac890b39f1d9a9ca494ac2f9a6d5/request.go#L654-L669
It is strongly required to pass in the ja3 string to set the tls fingerprint This feature is very important for many people to use,like this 771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,10-18-45-43-35-13-23-27-65281-65037-17513-11-16-0-51-5,25497-29-23-24,0 ,thx very much
创建一个全局变量client并设置代理的情况下 var client = req.C().SetProxyURL("...") 如果代理服务器先关闭,仍可以跳过代理直接请求成功。 即使代理服务器恢复正常,也不会自动生效代理,如何强制使用代理? 难道每次请求前都要SetProxyURL一次或者重新创建含有代理的client吗?
想结合 req-cool 开发一个 mitm 代理,但是看了一下网上的实现都是通过 Transport 去转发的, 我想通过 req 来做一个 sidecar透明代理,因为我们是 java 用户,java 那边没有很好的tls 指纹处理方案,希望前置搭建一个 mitm 去解决这个问题....
能否增加一个函数, 例如`CWithT`, 可以复用其他一个全局有代理Transport, 目前虽然可以用C创建客户端, 然后重新做指向, 但是每次调用C会自动分配一个新的Transport, 感觉怪怪的, 在频繁创建和销毁的场景感觉不是很优雅.
quic / http3 标准库已经提上日程, 目前已经在x/net中quic package 提供实现,建议 req 采用x/net中的实现替换 quic-go, 拥抱标准库同时也减少点依赖
直接增加JA3支持的话 会引入更多的外部依赖 这个就看作者是否愿意了
SetTLSFingerprint 增加 uTLSConnApply 用于设置UClient 这样的话 配合github.com/Danny-Dasilva/CycleTLS/cycletls 中的cycletls.StringToSpec,可以手动直接设置JA3 JA4等ClientHelloSpec 增加SetTLSFingerprintSpec用于快捷设置ClientHelloSpec