【问题标题】:"Invalid Argument" Message when sending post for Pushover API为 Pushover API 发送帖子时出现“无效参数”消息
【发布时间】:2021-06-27 09:18:57
【问题描述】:

我们目前正在使用 pushover,当我们的监控在我们的系统中发现错误时,将消息发送到我们的服务台。

我们的系统收集数据,创建消息,然后将所需的参数发送到 perl 脚本:

use LWP::UserAgent;
use Getopt::Std;

my %opts=();

my $curPath=$ENV{PATH};
$ENV{PATH} = $curPath.";Perl_Path";


getopts('t:u:m:p:', \%opts) or abort("No options given\n"); 

if (defined $opts{t}) {
  $APP_TOKEN=$opts{t};
}
if (defined $opts{u}) {
  $USER_KEY=$opts{u};
}
if (defined $opts{m}) {
  $MESSAGE=$opts{m};
}
if (defined $opts{p}) {
  $PRIO=$opts{p};
}

my $ua=LWP::UserAgent->new(timeout => 10);
my $response = $ua->post( 
  "https://api.pushover.net/1/messages.json", [
  "token" => "$APP_TOKEN",
  "user" => "$USER_KEY",
  "message" => "$MESSAGE",
  "priority" => "$PRIO"
]);

if ($response->is_success) {
    print $response->decoded_content;
}
else {
    die "HERE: ".$response->status_line;
}

直到昨天,当我们的服务台注意到没有消息发送时,这似乎工作正常。

通过使用虚拟消息执行脚本,我在脚本终止后收到以下错误消息:

Here: 500 can't connect to api.pushover.net:443 <invalid argument>

我曾尝试联系 pushover,但他们并没有我希望的那么有帮助。 由于我们没有对发送这些消息的方式进行任何更改,因此我认为是什么 pushover 确实导致了这个问题。

有人知道为什么 LWP::Useragent 可能会发送“无效参数”消息吗?因为我似乎无法在网上找到很多信息。 我们确实为此打开了防火墙以访问 2 个 IP,但是用这些 IP 地址替换主机名反而会引发以下错误:

Here: 500 can't connect to api.pushover.net:443 <Bad File Descriptor>

编辑: 我们正在为 Windows 使用草莓 perl 安装

我恳请有关解决此问题的建议。 提前谢谢你。

【问题讨论】:

  • 您运行的是哪个版本的 LWP? $ perl -MLWP::UserAgent\ 9 会告诉你。 // “无法连接”听起来像 metacpan.org/source/OALDERS/libwww-perl-6.53/lib/LWP/Protocol/…,但这是一种不同的格式,并且您的两个输出都不在当前 LWP::UA 的此列表中。您是否更新了您的 Perl 模块的一部分,但没有更新其他模块?可能是您的依赖项中的版本不匹配。
  • 您发布的用于提取版本的命令似乎不适用于我在 Windows 上的草莓 perl。但是我们并没有改变任何关于 system/perl 或脚本的东西,所以我认为这不是原因。
  • 该命令包含一个反斜杠和一个空格。它会抱怨版本太低,并告诉你它是哪个版本。 $ 不是命令的一部分,这是表明它是命令行的约定。
  • 命令行返回:无法打开perl脚本“9”:没有这样的文件或目录
  • @RhoGu 改用perl -MLWP::UserAgent -e "print $LWP::UserAgent::VERSION";应该在 Windows 上工作得更好。

标签: perl lwp-useragent pushover


【解决方案1】:

IT 似乎 Pushover 将他们的 API 迁移到不同的 IP 地址,以抵御针对它的 DDoS 攻击。

由于我们的防火墙仅配置为允许到旧地址的流量,因此我们的系统无法向 IP 发送消息。

为什么 LWP::Useragent 将此标记为“无效参数”目前我无法理解,但目前手头的问题已经解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 2016-10-24
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    相关资源
    最近更新 更多