如何将特定消息放入 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.';
};
我的带有 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.';
};