当我尝试反序列化从HTTP请求到错误类型的对象的JSON响应时,我唯一能得到的就是Error deserializing response
。
我希望更多地了解问题所在,例如,哪一行或哪些字符。
是否可以从“错误反序列化响应”中获取更多详细信息?
我正在另一个包装箱中调用一个函数,如下所示:
pub fn request<T>(&self, request: http::Request<Vec<u8>>) -> Result<T>
where
T: DeserializeOwned,
{
let mut res: reqwest::Response = self.send(request)?;
trace!("{} {}", res.status().as_str(), res.url());
//trace!("Response Headers: {:?}", res.headers());
let s = res.status();
let text = res.text().context(ErrorKind::RequestParse)?;
res.error_for_status()
.map_err(|e| make_api_error(&text, e, &s))?;
serde_json::from_str(&text).map_err(|e| {
warn!("{}, {:?}", text, e);
Error::from(ErrorKind::SerdeParse)
})
}
似乎Error deserializing response
显示了ErrorKind::SerdeParse
。
真正的错误已记录在警告warn!("{}, {:?}", text, e);
中,但我看不到警告信息。我已经将日志级别设置为debug
,并且可以在自己的箱子中看到调试日志。