记录 RestSharp 发送的 XML 或 JSON

Logging the XML or JSON sent by RestSharp

我正在使用 RestSharp 将信息发送到 API。我想记录我发送给此 API 的 XML,以便稍后进行调试。

我想做这样的事情:

var request = new RestRequest(resourcePath, method);
request.AddBody(dto);
Logger.Log(request.Content);
var response = Client.Execute(request);

但是,RestSharp 发送的实际请求似乎并没有暴露。

请求中发送的所有内容都可以在 request.Parameters 中找到。

为了更容易获取请求正文,我创建了这个扩展方法:

public static class RestSharpExtensions
{
    public static string GetBody(this IRestRequest request)
    {
        var bodyParameter = request.Parameters
            .FirstOrDefault(p => p.Type == ParameterType.RequestBody);
        return bodyParameter == null
            ? null
            : bodyParameter.Value.ToString();
    }
}