[Catalyst] Testing RESTful web services

David Wright dave-catalyst at dexy.org
Mon Oct 6 08:58:15 BST 2008


Ian Docherty wrote:
> Moritz Onken wrote:
>>
>> Am 05.10.2008 um 10:47 schrieb Ian Docherty:
>>
>>> Hi
>>> I am writing a simple test to test a POST method in a web service
>>> but my controller does not see any content in the POSTed request.
>>>
>>> In the controller both the $c->request->body and
>>> $c->request->content_length are undefined.
>>>
>>> Any ideas?
>>>
>>> ------ test.t -------
>>> use strict;
>>> use warnings;
>>>
>>> use Catalyst::Test 'MyApp';
>>> use HTTP::Request;
>>>
>>> my $req = HTTP::Request->new(
>>>   'POST',
>>>   '/foo',
>>>   [
>>>       Content_Type => 'text/plain'
>>>   ],
>>>   "hello world",
>>>   );
>>
>> It's Content-type => ...
> Yup, typo on my part, but it does not change the problem. There is
> still no content in the request when it gets to the controller.
It's not a typo, the constructor accepts underscores as well as dashes
so that you can build requests without having to quote the hash keys.

>
> Just a slight modification to my original statement. In the controller
> the request body is undef, but the request length is 0 (not undef)

IIRC you have to manually add content-length yourself, HTTP::Request
doesn't build it for you.

Regards,
David




More information about the Catalyst mailing list