You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Perl使用REST::Client调用POST API报Not a SCALAR reference错误求助

问题原因

你调用REST::Client的POST方法时参数传递格式不符合模块要求:

  • REST::Client的POST方法要求传入三个独立参数:请求URL、请求体内容、请求头哈希引用,你错误将请求体和请求头塞进了同一个数组引用中,底层LWP库处理非标量的请求体内容时触发了报错
  • 附带两个代码细节问题:
    • 你已经将请求头定义为哈希引用$headers,传参时不需要用%$headers解引用为哈希
    • 示例中的请求URLhttps:hereismyurl格式错误,缺少协议后的双斜杠,需修正为https://hereismyurl类的正确格式

修正后的代码

use REST::Client;
use MIME::Base64;

my $username = 'user';
my $password = 'passwrd';

# 修正URL格式
my $request_url =  'https://hereismyurl';
my $headers = {
   Authorization => 'Basic ' . encode_base64($username . ':' . $password),
   'OSvC-CREST-Application-Context' => 'Test',
   'Content-type' => 'application/json'
};    
my $body_content='{"id" :106197,"filters":[{"name": "Date Range","values":["2021-09-27T00:00:00.000Z","2021-09-28T00:00:00.000Z"}]}';    
my $client = REST::Client->new();
# 修正POST传参格式,三个参数独立传递,直接传哈希引用$headers即可
$client->POST($request_url, $body_content, $headers);
print $client->responseContent();

内容的提问来源于stack exchange,提问作者Priya Chatterjee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:45:05