Мы делаем это автоматически в NetQuarry Platform - это довольно просто, хотя вы заставить изображение чтобы пройти через ваш сайт против charts.google.com, чтобы ваш браузер выполнил запрос через одно соединение.
Поскольку диаграмма - это всего лишь ссылка на изображение, мы создаем ссылку на диаграмму (гораздо более сложный процесс, очевидно), а затем добавим всю ссылку на строку запроса на внутреннем обработчике (handler.ashx? req = chart &). Таким образом, новая ссылка выглядит следующим образом:
handler.ashx акт = CHRT & REQ = диаграмма & CHT = p3 & CHS = 450x170 & CHD = S: HAR9GBA & хл = Новое | В% 20Progress | Ответили | вона? т% 20Respond | На% 20Hold | будущее | Обзор | & Chg = 20,20,1,5 & Chg = 10,25,1,5 & CHCO = 0A477D
Тогда мы просто загрузить данные изображения и записать его обратно в качестве ответа.
Вот код:
Blockquote
private void GoogleChart(HttpContext cxt)
{
const string csPrefix = "?act=chrt&req=chart&";
HttpRequest req = cxt.Request;
HttpResponse rsp = cxt.Response;
string sUrl = cxt.Request.RawUrl;
int nStart = sUrl.IndexOf(csPrefix, StringComparison.OrdinalIgnoreCase);
rsp.Clear();
if (nStart > 0)
{
sUrl = "http://chart.apis.google.com/chart?" + sUrl.Substring(nStart + csPrefix.Length);
System.Net.WebClient wc = new System.Net.WebClient();
byte[] buffer = wc.DownloadData(sUrl);
cxt.Response.ClearContent();
cxt.Response.ClearHeaders();
cxt.Response.ContentType = "application/octet-stream";
cxt.Response.AppendHeader("content-length", buffer.Length.ToString());
cxt.Response.BinaryWrite(buffer);
}
}
Что конкретная проблема с кодом этого сообщения в блоге? –
В настоящее время ничто не кажется рендерингом даже после вызова моего обработчика и ошибок не было. Я немного поправлю свою версию кода здесь. спасибо – SetiSeeker