reisinge has asked for the wisdom of the Perl Monks concerning the following question:
I am authenticating through Rackspace API with the following code (using LWP):
sub authenticate { # Create a request my $req = HTTP::Request->new( POST => 'https://identity.api.rackspacecloud.com/v2.0/tokens' +); $req->content_type('application/json'); #my $json = '{"auth":{"RAX-KSKEY:apiKeyCredentials":{"username":"f +oo", "apiKey":"00000000000000000000000000000000"}}}'; my $json = quotemeta( {"auth":{"RAX-KSKEY:apiKeyCredentials":{"use +rname":$USERNAME, "apiKey":$API_KEY}}} ); $req->content( $json ); # Pass request to the user agent and get a response back my $res = $ua->request($req); # Check the outcome of the response if ( $res->is_success ) { # Do stuff ... } else { print $res->status_line, "\n"; } }
The problem is that I am not able to interpolate the variables in JSON string ($USERNAME and $API_KEY) - I am getting 400 BadRequest response. I have tried quotemeta (in the code snippet above), \Q and \E operators, escaping JSON double quotes with \.
The commented out $json line (with hard-coded credentials) works just fine.
We are what we repeatedly do. Excellence, then, is not an act but a habit. -- Will Durant (Aristotle)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Interpolating variables in JSON string
by moritz (Cardinal) on Jan 29, 2013 at 11:34 UTC | |
|
Re: Interpolating variables in JSON string
by Corion (Patriarch) on Jan 29, 2013 at 11:28 UTC | |
|
Re: Interpolating variables in JSON string
by roboticus (Chancellor) on Jan 29, 2013 at 11:49 UTC | |
|
Re: Interpolating variables in JSON string
by muba (Priest) on Jan 29, 2013 at 13:52 UTC | |
|
Re: Interpolating variables in JSON string
by Anonymous Monk on Jan 29, 2013 at 13:23 UTC |