如何从“错误反序列化响应”中获取更多详细信息?

时间:2019-12-13 02:53:59

标签: rust

当我尝试反序列化从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,并且可以在自己的箱子中看到调试日志。

0 个答案:

没有答案