"Invalid Argument" 为 Pushover API 发送 post 时的消息
"Invalid Argument" Message when sending post for Pushover API
我们目前正在使用 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,但他们并没有像我希望的那样提供帮助。
由于我们没有对发送这些消息的方式进行任何更改,我认为是某些推翻导致了这个问题。
有人知道为什么 LWP::Useragent 会发送“无效参数”消息吗?由于我似乎无法在网上找到很多信息。
为此,我们确实打开了要访问的 2 个 IP 的防火墙,但是用这些 IP 地址替换主机名却出现了以下错误:
Here: 500 can't connect to api.pushover.net:443 <Bad File Descriptor>
编辑:
我们正在为 Windows
使用 strawberry perl 安装
我恳请就此问题的修复寻求建议。
提前谢谢你。
看来 Pushover 将他们的 API 迁移到不同的 IP 地址,以抵消对其的 DDoS 攻击。
由于我们的防火墙只配置为允许流量到旧地址,我们的系统无法向该 IP 发送消息。
为什么 LWP::Useragent 将此标记为“无效参数”目前我无法理解,但手头的问题目前已解决。
我们目前正在使用 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,但他们并没有像我希望的那样提供帮助。 由于我们没有对发送这些消息的方式进行任何更改,我认为是某些推翻导致了这个问题。
有人知道为什么 LWP::Useragent 会发送“无效参数”消息吗?由于我似乎无法在网上找到很多信息。 为此,我们确实打开了要访问的 2 个 IP 的防火墙,但是用这些 IP 地址替换主机名却出现了以下错误:
Here: 500 can't connect to api.pushover.net:443 <Bad File Descriptor>
编辑: 我们正在为 Windows
使用 strawberry perl 安装我恳请就此问题的修复寻求建议。 提前谢谢你。
看来 Pushover 将他们的 API 迁移到不同的 IP 地址,以抵消对其的 DDoS 攻击。
由于我们的防火墙只配置为允许流量到旧地址,我们的系统无法向该 IP 发送消息。
为什么 LWP::Useragent 将此标记为“无效参数”目前我无法理解,但手头的问题目前已解决。