Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 谷歌SSL图表_C#_Asp.net_Ssl_Charts - Fatal编程技术网

C# 谷歌SSL图表

C# 谷歌SSL图表,c#,asp.net,ssl,charts,C#,Asp.net,Ssl,Charts,我需要让免费的谷歌图表在SSL上工作,没有任何安全错误。我正在使用c#和asp.net 由于谷歌图表在默认情况下不支持SSL,我正在寻找一种健壮的方法来使用这些图表,但要确保我的用户不会通过浏览器收到任何安全警告 一个想法是使用一个处理程序来调用charts api,然后生成我的站点所需的输出 类似于博客文章。在这个阶段,我无法让这个例子起作用 欢迎提供任何建议或样品 谢谢我有一个有一个问题的部分解决方案 这里是我的新帖子的链接,我想就我的解决方案的一个具体问题寻求帮助 我们在NetQuarry

我需要让免费的谷歌图表在SSL上工作,没有任何安全错误。我正在使用c#和asp.net

由于谷歌图表在默认情况下不支持SSL,我正在寻找一种健壮的方法来使用这些图表,但要确保我的用户不会通过浏览器收到任何安全警告

一个想法是使用一个处理程序来调用charts api,然后生成我的站点所需的输出

类似于博客文章。在这个阶段,我无法让这个例子起作用

欢迎提供任何建议或样品


谢谢

我有一个有一个问题的部分解决方案

这里是我的新帖子的链接,我想就我的解决方案的一个具体问题寻求帮助


我们在NetQuarry平台上自动执行此操作-这非常简单,尽管您强制图像通过您的网站vs.charts.google.com发送,使您的浏览器通过单个连接运行请求

由于图表只是一个指向图像的链接,我们要做的是构建指向图表的链接(显然是一个更复杂的过程),然后将整个链接添加到内部处理程序(handler.ashx?req=chart&)上的查询字符串中。因此,新链接如下所示:

handler.ashx?act=chrt&req=chart&cht=p3&chs=450x170&chd=s:HAR9GBA&chl=New |进行中|响应|不会响应|在%20Hold |未来|审查| chg=20,20,1,5&chg=10,25,1,5&chco=0A477D

然后,我们只需下载图像数据并将其作为响应写回

代码如下:

大宗报价


谷歌图表API现在可以通过HTTPS在chart.googleapis.com上获得


来源:

那篇博文的代码有什么具体问题?即使在调用了我的处理程序并且没有抛出错误之后,目前似乎也没有呈现任何内容。我将在这里发布我的代码实现。谢谢,这对我有用。您只需参考
https://chart.googleapis.com/chart
取而代之,它可以工作。
    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);
        }
    }