Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

HTTP Data Being Changed

by dlwester (Initiate)
on Apr 10, 2012 at 18:15 UTC ( #964378=perlquestion: print w/replies, xml ) Need Help??
dlwester has asked for the wisdom of the Perl Monks concerning the following question:

I am calling a remote Perl service from a Perl script with the following code:
my $userAgent = LWP::UserAgent->new; my $request = HTTP::Request->new(); $request->uri($buildManagerUrl); $request->method("POST"); my $postData = "action=$action\&params=$callParamsJson"; my $content = encode("iso-8859-1", $postData); $request->content($content); $request->content_type("application/x-www-form-urlencoded"); my $response = $userAgent->request($request);
When I print out the request data, one of the fields in the embedded XML in the content is:
<password>XUvN+5R3</password>
Here's the code that retrieves the data sent above:
my $q = new CGI(); my %params = $q->Vars(); print Dumper($q);
However, when I look at the request in the Dumper output, the '+' in the data is being replaced by a space:
<password>XUvN 5R3</password>
I'm guessing I'm probably just using the wrong encoding, but I have no idea how to resolve this. Any ideas?

Replies are listed 'Best First'.
Re: HTTP Data Being Changed
by repellent (Priest) on Apr 10, 2012 at 22:24 UTC
      Thanks, that did the trick!
Re: HTTP Data Being Changed
by Anonymous Monk on Apr 10, 2012 at 18:28 UTC
    You're doing weird things with the low-level parts of the LWP API. This is much shorter and actually working as intended (takes care of assembling and encoding the request the correct way):
    use LWP::UserAgent qw(); my $response = LWP::UserAgent ->new ->post( $buildManagerUrl, { action => $action, params => $callParamsJson, } );
      Thanks, that simplified my code a lot. But my problem remains - the '+' is still a ' ' on the other side of the wire.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://964378]
Approved by ww
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2016-12-11 11:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (169 votes). Check out past polls.