Захват ответа веб-клиента и сохранение его в переменной - PullRequest
0 голосов
/ 10 августа 2010

У меня есть следующий код:

private void UploadSelectedImages(ListBox.ObjectCollection objectCollection)
{
    foreach (var photo in objectCollection)
    {
        using (var w = new WebClient())
        {
            var values = new NameValueCollection
            {
                { "key", "<MYAPIHERE>" },
                { "image", Convert.ToBase64String(File.ReadAllBytes(photo.ToString())) }
            };

            byte[] response = w.UploadValues("http://imgur.com/api/upload.xml", values);

            MessageBox.Show(XDocument.Load(new MemoryStream(response)).ToString());                    
        }
    }            
}

private void UploadSelectedImages(ListBox.ObjectCollection objectCollection)
{
    foreach (var photo in objectCollection)
    {
        using (var w = new WebClient())
        {
            var values = new NameValueCollection
            {
                { "key", "e0201e0b4528c146027c4f6dcd730787" },
                { "image", Convert.ToBase64String(File.ReadAllBytes(photo.ToString())) }
            };

            byte[] response = w.UploadValues("http://imgur.com/api/upload.xml", values);

            MessageBox.Show(XDocument.Load(new MemoryStream(response)).ToString());                    
        }
    }            
}

Есть ли более эффективный способ получения XML-ответа и его преобразования в строку?

1 Ответ

0 голосов
/ 10 августа 2010

Используйте StringReader для чтения строки из потока:

new StringReader(new MemoryStream(response)).ReadToEnd();
...