roc

Results 85 comments of roc
trafficstars

Let's write a goddamn awesome ztunnel in Rust !!!

还有这种?对于这种不符合规范的接口实现,只有自行按顺序拼接下了,下面给个可运行的例子: ```go package main import ( "github.com/imroc/req/v3" "net/url" "strings" ) func main() { req.EnableDebugLog() params := encodeParams( "c", "c", "a", "a", "3", "3", "1", "1", ) req.R().MustGet("https://httpbin.org/get?" + params) }...

dump支持只dump指定部分内容,比如只dump request 部分。然后response部分就不在dump中,但可以从resp对象的字段中获取: ```go client := req.C() resp, err := client.R().EnableDumpWithoutResponse().Get(url) if err != nil { ... } reqContent := resp.Dump() respHeader := resp.Header respBody := resp.String() ```

也考虑过支持更灵活的dump能力,但这种需求不多,改动较大,就暂时没支持

扫描器场景确实需要,今天已经初步支持了, release 到了 v3.25.0,用法参考 : https://req.cool/docs/tutorial/debugging/#dump-the-content ```go var reqBuf, respBuf bytes.Buffer resp, err := client.R(). EnableDump(). SetDumpOptions(&req.DumpOptions{ RequestOutput: &reqBuf, ResponseOutput: &respBuf, RequestHeader: true, RequestBody: true, ResponseHeader: true, ResponseBody: true, })....

嗯,如果是连接超时之类的网络错误,请求根本没有发出去,也就无法dump出来。 如果希望这种情况也能知道请求内容,可以用 client.OnBeforeRequest(xx) 加个中间件,每次请求前读取 request 上设置的属性(req.RawURL, req.Method, req.Headers, req.Body, req.FormData)

默认就会自动解压的,前提是server正常响应 Content-Encoding: gzip 的 header,并且body内容也完全是gzip算法压缩的,就会自动解压,验证代码: ```go package main import ( "bytes" "fmt" "github.com/imroc/req/v3" ) func main() { var reqBuf, respBuf bytes.Buffer req.R(). EnableDump(). SetDumpOptions(&req.DumpOptions{ RequestOutput: &reqBuf, ResponseOutput: &respBuf, RequestHeader: true,...