簡體   English   中英

終端告訴 perl 腳本存在問題

[英]Terminal tells there is an issue with perl script

我開始遇到我們的 perl 腳本之一的問題,該腳本直到上個月都運行良好。 有人可以幫我弄這個嗎?

malformed JSON string, neither array, object, number, string or atom, at character offset 0
(before "<!doctype html><html...") at ad_lib.pm line 985.

下面是我的線

my $response = from_json(qx{$BASE_HASH{CURL} -X GET -H "Content-Type: application/json" -H "Authorization:Basic $encoded" "https://localhost:9090/nwrestapi/v2/global/protectiongroups/" -k -1 2>/dev/null});

編碼使用如下

    my %BASE_HASH = ();
    read_config(\%BASE_HASH);
    my $encoded = MIME::Base64::encode($BASE_HASH{NW_USER} . ":" . $BASE_HASH{NW_PW});

看起來您從 HTTP 請求中獲得的響應曾經是 JSON 字符串,現在是 HTML 文檔。

from_json試圖將其解碼為 JSON 字符串,但失敗了,因為它找到的既不是數組、object、數字、字符串或原子:它是 HTML。

因此,與您使用的 Perl 腳本相比,您的外部服務(您正在與之交談的服務)更有可能出現問題。 這也可以解釋為什么它突然開始失敗。

似乎是較新版本的應用程序幾乎沒有 SSL 的高級版本,並且無法解碼用戶名/密碼。 而不是 $encoded 我已經將分塊/解碼的值傳遞給文件並且腳本工作正常。 我在執行腳本時發現新舊版本的唯一區別是 SSL 版本。 在具有舊應用程序版本的系統上:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 在具有新應用程序版本的系統上:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

需要弄清楚 $encoded 有什么問題以及如何傳遞值,可能是引號等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM