imroc / req

Simple Go HTTP client with Black Magic
https://req.cool
MIT License
4.12k stars 334 forks source link

digest认证,获取body为nil,怎么能获取到数据 #344

Open supersndqd opened 2 months ago

supersndqd commented 2 months ago
resp, err := client.R().
    SetDigestAuth("name”."password”).
    SetBodyJsonMarshal(&Register).
    SetSuccessResult(&rkBack).
    Post("http://1.1.1.1/Register")

rkBack 为nil 实际抓包,是有数据返回的

imroc commented 2 months ago

检查下 err 是否为 nil,也开下 DevMode看看实际返回的跟rkBack结构是否一致

supersndqd commented 2 months ago

err不为nil,err的判断里面我加了continue,后面代码继续在跑,而且statuscode是200,也是成功,就是resp.body是空的 rkBack是struct的默认值,resp判断是nil DevMode 同样无法同样无法看到resp的内容

supersndqd commented 2 months ago

我开始用body一个int值作判断的,0就是成功,跑了好多天了,才发现这个问题

imroc commented 2 months ago

判断 err 是基础操作,如果不为 nil 一定要报出来方便排查

supersndqd commented 2 months ago

说错,err为nil 我做了判断 if err != nil { fmt.Println("reg", err) time.Sleep(3 * time.Second) registerch <- 1 continue } 程序继续往下执行了

supersndqd commented 2 months ago

digest两次连接,我感觉resp保留的是第一次401的空body,想看源代码,几次跳转.放弃,跟大佬求助

imroc commented 2 months ago

digest两次连接,我感觉resp保留的是第一次401的空body,想看源代码,几次跳转.放弃,跟大佬求助

能否给可复现的代码,如不方便公开可发我邮箱 roc@imroc.cc

supersndqd commented 2 months ago

qq邮箱,已经发送