我已经成功调用了使用Postman使用摘要身份验证的第三方API。
当我尝试使用HttpClient发出相同的请求时,我得到的是“未经授权”。
使用Fiddler比较从Postman发送的请求标头和我的代码,我可以看到我的代码正在尝试将用户名编码为UTF-8,但是Postman没有。
邮递员:
Digest username="user.name@email.com" {rest of the digest credentials}
代码:
Digest username*=utf-8''user.name%40email.com {rest of the digest credentials}
领域,随机数,uri,响应,算法,不透明,qop,nc和cnonce都匹配。
我已经确认是导致用户名包裹在编码中的“ @”字符-但是为什么会引起问题以及如何解决?