Хранение изображения из веб-сервиса - PullRequest
1 голос
/ 16 августа 2010

Я получаю доступ к API, который возвращает значок для указанного домена (http://getfavicon.appspot.com/). У меня есть длинный список доменов, для которых я хочу получить значки, и я не хочу звонить в веб-службукаждый раз, так что я подумал, что получу ответ и сохраню изображение в файловой системе или в блобе БД.

Однако. Я не знаю, как получить что-то значимое из потока ответов, который приходитназад из службы.

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(); 

Я получил далеко сюда, чтобы получить ответ, но как я могу трактовать это как то, что я могу сохранить в БД SQL или в файловой системе??

Мне не хватает чего-то простого?

Спасибо

1 Ответ

5 голосов
/ 16 августа 2010

Если вы используете класс System.Net.WebClient, вы можете сделать это немного проще.

Это загрузит URL-адрес и сохранит его в локальном файле:

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");

Если вы хотите использовать байт [], используйте метод DownloadData.

...