use Data::Dumper; use REST::Client; sub generate { my $tokenURI = 'https://api.xxx.com/api/m1/token'; displayMsg( "Establishing connection................"); my %json_body = (grant => 'client_credentials', partner => ‘dfjkdjfdkdjkdkdjfdk’, client => 'dkfjdlfjdlfkjlj', client => 'dfkljflsfjlajflafjlsdkfjdskl=', # need encoding that is = will be %3D ); $restClient->addHeader("Content-Type", "application/x-www-form-urlencoded"); my $bodyData = encode_json(\%json_body); $restClient->POST($tokenURI, $bodyData); print Dumper($restClient); if ($restClient->responseCode() eq '200') { displayMsg ("Sucessfull "); my $token = decode_json($restClient->responseContent()); my $tokenAccess = $token->{'access_token'}; my $tokenType = $token->{'token_type'}; return $tokenType.' '.$tokenAccess; } else { displayMsg ( "Failed ."); displayMsg( 'Response status: ' . $restClient->responseCode()); foreach ( $restClient->responseHeaders() ) { print 'Header: ' . $_ . '=' . $restClient->responseHeader($_) . "\n"; } exit 1; } }