如何在perl Dancer服务器的“响应主体”中放置特定的消息

时间:2016-04-05 13:31:36

标签: perl response dancer

我的带有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报告相同。

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

我希望任何人都可以给我一个提示。

1 个答案:

答案 0 :(得分:3)

要简单地更改Http状态,您可以使用status keyword并将您的内容作为回复正文返回。

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