Comment puis-je utiliser le nouveau HttpClient à partir de Windows.Web.Http pour télécharger une image?
À l'aide de Windows.Web.Http.HttpClient
comment puis-je télécharger une image? Je voudrais utiliser cette HttpClient parce qu'il est disponible pour l'utilisation dans les bibliothèques de classe.
Gardez à l'esprit que maintenant, vous ne bénéficiez pas de la automatique de l'image mise en cache de l'Image de contrôle fournit.
Est-il possible de pointer vers un Uri sur le web directement? J'ai été faire des erreurs à propos de l'Uri non valide lors de l'être définie comme ci-dessus (le même Uri utilisé ci-dessous!). L'image serait juste vide, mais j'ai pu voir que l'erreur si j'ai ajouté l'image échec de chargement de la manifestation et a eu un coup d'oeil à l'exception... j'ai aussi lu quelques articles en précisant qu'il n'était pas possible, mais peut-être que ça n'a pas fonctionné...
Oui, en général, vous auriez juste à point à un Uri directement. C'est bizarre que l'image n'était pas chargé. Avez-vous essayé d'image différents Uri? Ce qui fait l'exception dire?
J'ai trouvé mon problème ici... lorsque l'URI est défini comme la source d'une image, il semble qu'il est très stricte au sujet d'échapper, quelque chose qui HttpClient ne se plaignent pas, c'est peut-être un peu plus intelligent avec sa échapper...
Est-il possible de pointer vers un Uri sur le web directement? J'ai été faire des erreurs à propos de l'Uri non valide lors de l'être définie comme ci-dessus (le même Uri utilisé ci-dessous!). L'image serait juste vide, mais j'ai pu voir que l'erreur si j'ai ajouté l'image échec de chargement de la manifestation et a eu un coup d'oeil à l'exception... j'ai aussi lu quelques articles en précisant qu'il n'était pas possible, mais peut-être que ça n'a pas fonctionné...
Oui, en général, vous auriez juste à point à un Uri directement. C'est bizarre que l'image n'était pas chargé. Avez-vous essayé d'image différents Uri? Ce qui fait l'exception dire?
J'ai trouvé mon problème ici... lorsque l'URI est défini comme la source d'une image, il semble qu'il est très stricte au sujet d'échapper, quelque chose qui HttpClient ne se plaignent pas, c'est peut-être un peu plus intelligent avec sa échapper...
OriginalL'auteur David Spence | 2014-11-16
Vous devez vous connecter pour publier un commentaire.
C'est ce que j'ai finalement venu avec. Il n'y a pas beaucoup de documentation autour de
Windows.Web.Http.HttpClient
et beaucoup des exemples d'utilisation en ligne des anciens mécanismes comme ReadAllBytesAsync qui ne sont pas disponibles avec cette HttpClient.Je note que cette question à partir de MSDN m'a beaucoup aidée, donc merci à cette personne. Comme le commentaire là-unis, ce gars doit être la seule personne au monde qui sait à propos de
Windows.Web.Http
!Juste pour info: Il y a aussi un SetSourceAsync méthode qui peut être mieux pour éviter le blocage de l'INTERFACE utilisateur
Vannevel Pas le meilleur conseiller -> aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong
Non,
HttpClient
devrait PAS être éliminés, mais ré-utilisé: "HttpClient est conçu pour être instancié une fois et ré-utilisé tout au long de la durée de vie d'une application. En particulier dans les applications serveur, la création d'une nouvelle HttpClient instance pour chaque demande d'échappement, le nombre de sockets disponibles sous de lourdes charges. Cela entraînera une exception socketexception erreurs." Voir docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/... et aspnetmonsters.com/2016/08/2016-08-27-httpclientwrongoui, certainement vrai. Il a été un moment depuis que j'ai écrit ce commentaire, et je sais mieux maintenant. Je vais le supprimer si il n'y a pas de confusion. Pour les futurs visiteurs: ne jetez pas la httpclient
OriginalL'auteur David Spence
await client.GetAsync(url)
au lieu declient.GetAsync(url).Result
. Autres que que, bon exemple.OriginalL'auteur Cloy
.net web de base de l'api, vous pouvez utiliser le code ci-dessous
ici GetProductImageQueryParam est une classe avec des paramètres d'entrée
OriginalL'auteur Shigil P V
Mise à jour de 8.1 - 10.
OriginalL'auteur DaBlue