Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
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?

Comment on HTTP Data Being Changed
Select or Download Code
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.
Re: HTTP Data Being Changed
by repellent (Priest) on Apr 10, 2012 at 22:24 UTC
      Thanks, that did the trick!

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 the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (7)
As of 2014-08-21 09:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (128 votes), past polls