* 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: [email protected] Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/[email protected]/ Dev site: http://dev.catalyst.perl.org/
