2017-09-28 18 views
0

Je construire une URL et faire une demande PUT en utilisant Flurl, comme suit:NullReferenceException quand faire une demande PUT en utilisant 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) 
} 

Mais je reçois une exception lorsque vous appelez PutAsync:

System.NullReferenceException s'est produite HResult = 0x80004003 Message = La référence d'objet n'est pas définie sur une instance d'un objet. Source = Flurl.Http StackTrace: à Flurl.Http.FlurlClient.ReadResponseCookies (réponse HttpResponseMessage) à Flurl.Http.FlurlClient.d__28.MoveNext() à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (tâche de travail) à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (tâche de tâche) à System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()

Dois-je utiliser try/catch et ignorer l'exception?

Répondre

0

Je soupçonne que l'appel HTTP réel ne parvient pas à obtenir une réponse, et Flurl essaie de lire les cookies de toute façon sans faire une vérification nulle sur la réponse. Ceci est un known bug et est fixé/prêt pour la version 2.0. 2.0 est en prerelease dès maintenant et je recommande la mise à niveau. Il est stable pour une utilisation en production, je ne garantis pas encore tout à fait que les changes sont gravées dans la pierre.