错误414-请求的URL太大而无法处理

时间:2011-08-11 08:54:04

标签: api charts

我在我的应用中使用Google Chart API并使用网址“http://chart.apis.google.com”生成图表

我收到错误“请求的网址太大而无法处理”,当我向此网址提供大量参数时。

在这种情况下我能做些什么?

4 个答案:

答案 0 :(得分:3)

Google Charts API FAQ提供了以下建议:

  

Google Chart API的网址长度是否有限制?最大网址长度是多少?

     

网址的最大长度不是由Google Chart API决定的,而是由网络浏览器和网络服务器考虑决定的。在URL编码之后,Google在图表GET请求中接受的最长URL是2048个字符(例如,|变为%7C)。对于POST,此限制为16K。

     

如果网址长度有问题,以下是一些缩短网址的建议:

     
      
  • 如果您使用的是文本编码数据格式,请从数字中删除前导零,删除小数点后的尾随零,并在小数点后舍入或截断数字。
  •   
  • 如果这不足以缩短网址,请使用简单(1个字符)或扩展(2个字符)编码。
  •   
  • 样本数据较少;即,减少粒度。
  •   
  • 从图表中删除装备和装饰,例如颜色,标签和样式。
  •   

也找到了这个,但似乎没有答案/解决方案 http://groups.google.com/group/google-chart-api/browse_thread/thread/b47c1588b39d98ce

答案 1 :(得分:0)

如果是浏览器错误 - 浏览器的最大URL长度限制(IE 6/7限制为2,083):

What is the maximum length of a URL in different browsers?

答案 2 :(得分:0)

我正在获取HTTP 414,但我的URL长度不是问题(它是1881个字符),我已尝试过GET和POST。我的猜测是,当您请求的图表太“昂贵”而无法生成时,Google也会返回此错误。

答案 3 :(得分:0)

对我来说效果很好的方法是将所有值除以10或20并将结果转换为int(无逗号),但我将数字保留在轴上。这样,它的准确性稍差,但会减少网址中使用的字符数量。

代码示例:

$newSalesrank = $rank/20;
$rankdata .= intval($newSalesrank);

这解决了我的问题,我没有得到更多" url太长"错误,它在我的图表上看起来仍然很好 - 因为它看起来仍然相同,数字只是按比例缩小。

我知道已经有一个已接受的答案,但我希望我可以帮助解决这个问题,因为它很容易实现。

度过愉快的一天。