You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Jean-Michel <jm...@gmail.com> on 2012/10/09 10:44:42 UTC
mod_perl and Apache::Test
Hello,
I have some mod_perl modules that implement REST services. I want to
test them with Apache::Test. So, I have some questions :
- Is it possible to use DELETE method with Apache::Test ? I didn't find
any examples
- I want to send JSON data with POST method (not with
x-www-form-urlencode). I can do that with cURL, but to do it with
Apache::Test ?
Thanks,
Jean-Michel
Re: mod_perl and Apache::Test
Posted by Torsten Förtsch <to...@gmx.net>.
On 10/09/2012 10:44 AM, Jean-Michel wrote:
> I have some mod_perl modules that implement REST services. I want to
> test them with Apache::Test. So, I have some questions :
>
> - Is it possible to use DELETE method with Apache::Test ? I didn't
> find any examples
$ perl -MApache::TestRequest -le '
print Apache::TestRequest::user_agent, " is a ",
@Apache::TestRequest::ISA
'
Apache::TestRequest=HASH(0x626ab8) is a LWP::UserAgent
So, at least if LWP is installed Apache::TestRequest::user_agent()
returns the user agent object which is a LWP::UserAgent.
That means you can call any method you want, even HUGO:
$ perl -MApache::TestRequest -e '
print Apache::TestRequest::user_agent->request
(HTTP::Request->new(HUGO=>"http://opi.home/"))->as_string
'
HTTP/1.1 501 Method Not Implemented
Connection: close
Date: Tue, 09 Oct 2012 09:13:53 GMT
Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/1.0.0e DAV/2
mod_apreq2-20090110/2.8.0 mod_perl/2.0.6threading9 Perl/v5.12.3
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 206
Content-Type: text/html; charset=iso-8859-1
Client-Date: Tue, 09 Oct 2012 09:13:53 GMT
Client-Peer: 192.168.0.4:80
Client-Response-Num: 1
Title: 501 Method Not Implemented
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Method Not Implemented</title>
</head><body>
<h1>Method Not Implemented</h1>
<p>HUGO to / not supported.<br />
</p>
</body></html>
> - I want to send JSON data with POST method (not with
> x-www-form-urlencode). I can do that with cURL, but to do it with
> Apache::Test ?
Again, HTTP::Request allows you to format almost any request you want:
perl -MApache::TestRequest -e '
print HTTP::Request->new(HUGO=>"http://opi.home/",
HTTP::Headers->new(Fritz=>"Fratz"),
"blah blub"
)->as_string
'
HUGO http://opi.home/
Fritz: Fratz
blah blub
Unfortunately, you didn't say what you want to use instead of
x-www-form-urlencode. So, I assume you want to use form-data. In that
case this piece of code should do it:
$resp=POST $uri,
Content_Type=>'form-data',
Content=>[KEY=>VALUE, ...];
Torsten