我正在使用Flurl构建网址并发出PUT
请求,如下所示:
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 Message =对象引用未设置为对象的实例。 来源= Flurl.Http 堆栈跟踪: 在Flurl.Http.FlurlClient.ReadResponseCookies(HttpResponseMessage响应) 在Flurl.Http.FlurlClient.d__28.MoveNext() 在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
我应该使用try / catch
并忽略例外吗?
答案 0 :(得分:0)
我怀疑实际的HTTP调用未能获得响应,并且Flurl正在尝试读取cookie,而不对响应进行空检查。这是known bug,已针对2.0版本进行修复/准备。 2.0现在在prerelease,我建议升级。它对于生产使用来说是稳定的,我只是不能保证changes一成不变。