我的带有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报告相同。
一些谷歌搜索没有提示,如何生成正确的错误代码和提供的消息。
我希望任何人都可以给我一个提示。
答案 0 :(得分:3)
要简单地更改Http状态,您可以使用status
keyword并将您的内容作为回复正文返回。
get '/' => sub {
status 418;
return 'I cannot make coffee.';
};