捕获webclient响应并将其保存到变量中

时间:2010-08-10 14:37:16

标签: c# api webclient imgur

我有以下代码:

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 :(得分:0)

使用StringReader从流中读取字符串:

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