FLURL 4.0 在单个请求上使用 Newtonsoft JSON 序列化器

问题描述 投票:0回答:1

参考 Flurl Serializers 它表明 Flurl 4.0 可以使用基于 Newtonsoft 的序列化器,但我不清楚如何针对单个请求执行此操作。我需要这个来解决我的请求中的循环错误。

c# json json.net jsonserializer flurl
1个回答
0
投票

这是执行此操作的示例代码

public static async Task<bool> TransferData(Data data, string firmSuffix)
{
try
{
    var (webApiUrl, accessToken) = await GetWebApiUrlAndToken(firmSuffix);

    if (string.IsNullOrWhiteSpace(accessToken))
    {
        return false;
    }

    // this is needed when serializing classes to prevent circular loop error
    Newtonsoft.Json.JsonConvert.DefaultSettings = () => new JsonSerializerSettings
    {
        ReferenceLoopHandling = ReferenceLoopHandling.Ignore
    };

    var result = await Flurl.Url.Combine(webApiUrl, "/Api/AddData")
        .WithOAuthBearerToken(accessToken)
        .WithSettings(settings =>
            { settings.JsonSerializer = new Flurl.Http.Newtonsoft.NewtonsoftJsonSerializer(); })
        .PostJsonAsync(data);

    return result.StatusCode == 200;
}
catch (FlurlHttpException ex)
{
    Console.WriteLine(ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

return false;
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.