* Ian Docherty <[EMAIL PROTECTED]> writes:

> I am sending a POST to a Catalyst app and according to the documention
> I expected the request body to
> contain the data I sent. Instead it holds a filename in the tmp
> directory which contains the document. Is
> this an expected behaviour?
>
> e.g. in my test script
>
> my $request = HTTP::Request->new(POST => 'http://linux:3000/svc/to/1001');
> $request->content_type('text/text');
> $request->content('THIS IS THE STRING');
> my $response = $ua->request($request);

Basically, HTTP::Body assumes you are sending your content as
application/octet-stream, since it's not multipart/form-data or
application/x-www-form-urlencoded (the two cases that it treats
specially).

Since file uploads are application/octet-stream, we put the data into
a file.  Maybe it would be better to keep it in memory unless
Content-Length exceeds a certain length, but the current behavior is
consistent and reliable, so I don't see why we should change it.  It's
really not that confusing.

Finally, the "string" that you see in $c->req->body is actually an
IO::File object, so you can easily suck the file in if the need
arises.

Regards,
Jonathan Rockway

_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Reply via email to