当使用Perl API连接plotly站点时,我有HTTP :: Response失败

时间:2013-12-23 08:04:41

标签: perl api plotly

最近,我找到了plot.ly网站,我正在尝试使用它。 但是,当我使用Perl API时,我无法成功。 我的步骤如下。

  1. 我使用Google帐户
  2. 注册plot.ly
  3. 已安装的Perl模块(WebService :: Plotly)
  4. 输入基本示例(“https://plot.ly/api/perl/docs/line-scatter”)
  5. .. ..跳过

    use WebService::Plotly;
    use v5.10;
    use utf8;
    
    my $user = "MYID";
    my $key = "MYKEY";
    
    my $py= WebService::Plotly->new( un => $user, key => $key );
    
    say __LINE__; # first say
    
    my $x0 = [1,2,3,4]; 
    my $y0 = [10,15,13,17];
    my $x1 = [2,3,4,5]; 
    my $y1 = [16,5,11,9];
    
    my $response = $py->plot($x0, $y0, $x1, $y1);
    say __LINE__ ; # second say
    

    ..跳过...

    然后,执行示例perl代码 =>>但是,在这一步中,$ py-> plot总是返回“HTTP :: Response = HASH(0x7fd1a4236918)” 并且第二个说没有被执行 (我使用的是Perl版本5.16.2和5.19.1,操作系统是MacOS X)

    在手上,python示例(“https://plot.ly/api/python/docs/line-scatter”)总是成功。

    请让我知道这个问题。 非常感谢!

2 个答案:

答案 0 :(得分:0)

您是否查看了$ py->内容或HTTP :: Response对象的任何其他属性?

除了您尝试打印对象引用的值之外,您还没有告诉我们任何其他内容,您从中提供的输出是您期望的输出。

答案 1 :(得分:0)

快速查看该模块的源代码后,我可以建议使用它,如下例所示。因为任何方法都可能引发异常。在http错误上,这将是HTTP :: Response对象

eval {
    my $response = $py->plot($x0, $y0, $x1, $y1);
};
if (my $err = $@) {
    if (!ref $err) {
        die "Plotly error: ", $err;
    }
    elsif ($err->isa('HTTP::Response')) {
        die "HTTP error: ", $err->status_line;
    }
    else {
        die "Unknown error: ", ref($err), " ($err)"
    }
}