Am Montag, 9. Mai 2005 20.28 schrieb Jason Williard:
> I am trying to write a script that will post a file to another script on
> another server via HTTP::Request. I seem to be unsuccessful and was
> hoping that someone could point out my mistakes. Here is the code that
> I have so far:
>
> ---------------------------
[not tested]
> #!/usr/bin/perl -W
instead of the -W switch:
use strict;
use warnings;
> use HTTP::Request;
> use HTTP::Response;
> use LWP::UserAgent;
>
> my $ua = new LWP::UserAgent;
> $ua->agent("Uploader/0.1 " . $ua->agent);
The ". $ua->agent" part is not necessary if the string before ends with a
space.
> my $url = "http://my.url/upload.pl";
> my $base = "/www/htdocs/base";
>
> my $request = HTTP::Request->new(POST $url);
At least there is a comma missing between the two arguments to new().
If POST ist not a (imported) constant, put it in quotes.
> $request->content_type('form-data');
> $request->content( [ mirror => 'download01',
> file => ["$base/File.exe"],
> ]
> );
According to the man pages of HTTP::Request and HTTP::Message, the content()
method takes a string of bytes as argument.
> my $response = $ua->request($request);
>
> if ( $response->is_success ) {
> print $response->content;
> } else {
> print "No Good\n";
> }
> ---------------------------
What you can do further:
- Inspect the warnings/errors you get when running the code
- Test if the objects get created
- Inspect the objects structure with Data::Dumper
- put some print statements in the code to inspect variables
joe
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>