views:

16

answers:

1

I have the following code:

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

Is there a more efficient way of grabbing the response XML and convert it to string?

A: 

Use StringReader to read an string from a stream:

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