0

我正在构建一个 Url 并PUT使用 Flurl 发出请求,如下所示:

using (var client = new Url("myurl"))
    .ConfigureClient(c => c.HttpClientFactory = new CompressHttpClientFactory())
    .WithCookie(new System.Net.Cookie("name", "value", "/", "domain"))
{
    var content = new StringContent("json here", Encoding.UTF8, "application/json");
    var response = await client.PutAsync(content)
}

但是我在调​​用时遇到了一个异常PutAsync

System.NullReferenceException 发生 HResult=0x80004003 消息=对象引用未设置为对象的实例。Source=Flurl.Http StackTrace:在 Flurl.Http.FlurlClient.ReadResponseCookies(HttpResponseMessage response) at Flurl.Http.FlurlClient.d__28.MoveNext() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime。 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 处的 CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

我应该使用try / catch并忽略异常吗?

4

1 回答 1

0

我怀疑实际的 HTTP 调用没有得到响应,并且 Flurl 无论如何都试图读取 cookie 而没有对响应进行空检查。这是一个已知错误,已修复/准备好用于 2.0 版本。2.0 目前处于预发布阶段,我建议升级。它对于生产使用是稳定的,我只是还不能保证这些变化是一成不变的。

于 2017-09-28T13:45:45.843 回答