Почему не работает получение ссылки на фото из xml ВКонтакте? - C#
Формулировка задачи:
Здравствуйте, подскажите пожалуйста, почему не работает получение ссылки на фото из xml
Вот из такой, например.
http://api.vk.com/method/wall.get.xm...in=sci&count=5
Из постов информацию получает нормально.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Text;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
namespace WindowsFormsApplication16
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.DataSource = GetVkpostslist();
}
public class Vkpost
{
public int ID { get; set; }
public int from_id { get; set; }
public int owner_id { get; set; }
public DateTime date { get; set; }
public string post_type { get; set; }
public string text { get; set; }
public bool is_pinned { get; set; }
public int comments { get; set; }
public int likes { get; set; }
public int reposts { get; set; }
public attachmentslist attachmentslist { get; set; }
}
public class attachmentslist
{
public List<imginfo> img = new List<imginfo>();
}
public class imginfo
{
public string photo_75 { get; set; }
public string photo_130 { get; set; }
public string photo_604 { get; set; }
public string idphoto { get; set; }
}
public List<Vkpost> GetVkpostslist()
{
var webRequest =
HttpWebRequest.Create("http://api.vk.com/method/wall.get.xml?v=5.45&filter=all&domain=sci&count=5");
var webResponse = webRequest.GetResponse();
var stream = webResponse.GetResponseStream();
var xmlDoc = XDocument.Load(stream);
var Vkpost =
from post in xmlDoc.Descendants("post")
select new Vkpost
{
ID = Convert.ToInt32(post.Element("id").Value),
text = post.Element("text").Value,
likes = Convert.ToInt32(post.Element("likes").Value),
attachmentslist = new attachmentslist()
{
img = new List<imginfo>(from im in post.Descendants("photo")
select new imginfo()
{
photo_604 = im.Element("photo_604").Value,
photo_130 = im.Element("photo_130").Value,
idphoto = im.Element("id").Value,
photo_75 =im.Element("photo_75").Value
})
}
};
return Vkpost.ToList();
}
}
}Решение задачи: «Почему не работает получение ссылки на фото из xml ВКонтакте?»
textual
Листинг программы
public class DataGridViewUrlImageCell : DataGridViewImageCell
{
protected override object GetFormattedValue(object value, int rowIndex, ref DataGridViewCellStyle cellStyle, TypeConverter valueTypeConverter, TypeConverter formattedValueTypeConverter, DataGridViewDataErrorContexts context)
{
Image jpgImage = null;
using (WebClient webSource = new WebClient())
{
try
{
byte[] data = webSource.DownloadData(value.ToString());
using (MemoryStream pipe = new MemoryStream(data))
{
jpgImage = Image.FromStream(pipe);
}
}
catch (Exception) { }
};
return jpgImage;
}
}