如何将特定消息放入 perl Dancer 服务器的 "response body"

How to put a specific message in the "response body" of a perl Dancer server

我的带有 Perl Dancer 的 RESTfull 服务器运行完美,只有一个例外:send_error("Simple Error string",400) 例如删除了错误消息。

将发送错误代码,但不会发送实际消息 "Simple Error string"。

我试过return send_entity({ error => "Missing parameter "}, 400)也没有用。

代码如下:

#!/usr/bin/perl
##########################################################################################################################################
# V1.0 REST-Server
##########################################################################################################################################


use Dancer;
use Dancer::Plugin::Auth::Basic;
use Dancer::Plugin::Database;
use Dancer::Plugin::REST;

set serializer => 'XML';

post '/hello/:name' => sub 
{
  # Low level test route
  auth_basic realm => 'Authorized personnel only', users => { 'alice' => 'AlicesPassword', 'bob' => 'BobsPassword' };
  send_error("Simple Error string",400);
};
dance;

使用 curl 进行测试:

#curl -X POST -k -u alice:AlicesPassword http://localhost:5000/hello/abc
An internal error occured

并在 Firefox 下使用 RESTer(通过 https 代理)。

RESTer 报告相同。

几次谷歌搜索都没有提示如何生成正确的错误代码和提供的消息。

希望大家指点一下

要简单地更改 Http 状态,您可以使用 status keyword 和 return 您的内容作为响应正文。

get '/' => sub {
  status 418;
  return 'I cannot make coffee.';
};