2010-08-16 10 views
1

J'accède à une API qui renvoie une favicon pour un domaine spécifié (http://getfavicon.appspot.com/). J'ai une longue liste de domaines pour lesquels je veux obtenir des icônes et je ne veux pas faire l'appel au service Web à chaque fois, donc j'ai pensé que j'obtiendrais la réponse et stocker l'image soit sur le système de fichiers ou dans un DB Blob.Stockage d'une image à partir d'un service Web

Cependant. Je ne sais pas comment obtenir quelque chose de significatif à partir du flux de réponse qui revient du service.

byte[] buf = new byte[8192]; 

var request = (HttpWebRequest)WebRequest.Create("http://getfavicon.appspot.com/http://stackoverflow.com"); 

var response = (HttpWebResponse)request.GetResponse(); 

var resStream = response.GetResponseStream(); 

J'ai aussi loin que ici pour obtenir une réponse, mais comment pourrais-je puis-je traiter cela comme quelque chose que je peux sauver une base de données SQL ou vers le système de fichiers?

Ai-je oublié quelque chose de simple?

Merci

Répondre

5

Si vous utilisez la classe System.Net.WebClient, vous pouvez le faire un peu plus facile.

Cela téléchargera l'URL et l'enregistrer dans un fichier local:

var client = new System.Net.WebClient(); 
client.DownloadFile(
    // Url to download 
    @"http://getfavicon.appspot.com/http://stackoverflow.com", 
    // Filename of where to save the downloaded content 
    "stackoverflow.com.ico"); 

Si vous voulez un octet [] à la place, utilisez la méthode DownloadData.

+0

Brillant c'est exactement ce que j'avais besoin de savoir. Très bonne réponse. Merci. – Dave