2017-07-17 2 views
0

Ich führe eine Curl-Anfrage innerhalb meiner Perl-Skript und wenn Passwort oder Benutzername enthält ein spezielles Zeichen (&) brechen sie die URL. Bitte lassen Sie mich wissen, wie ich das lösen kann.Sonderzeichen sind in Passwort enthalten und es bricht die URL

my $json="curl --user $userName:$password http://git.sample.com/rest/api/1.0/projects/TEAMS/repos/ "; 

my $decodedJson = decode_json($json); 
+2

ein Perl-Modul wie 'WWW verwenden :: Curl' anstelle eines cmdline Anruf – Jens

+0

i für eine native Weg suchen, bin – gihan

+5

Die native Weg in Perl wäre nicht curl zu verwenden, aber LWP zu verwenden :: Useragent stattdessen. – simbabque

Antwort

1

Schließlich habe ich @simbabque Weg mit WP::UserAgent implementiert.

use LWP::UserAgent; 

my $ua = new LWP::UserAgent; 
my $req = new HTTP::Request(GET => 'http://git.sample.com/rest/api/1.0/projects/TEAMS/repos/'); 
    $req->authorization_basic($userName,$password); 
    my $response = $ua->request($req); 

    #handle error 
    unless ($response->is_success) { 
     die $response->status_line; 
    } 
    my $content = $response->decoded_content(); 
    if (utf8::is_utf8($content)) { 
     binmode STDOUT,':utf8'; 
    } else { 
     binmode STDOUT,':raw'; 
    } 
my $json=$content; 

my $decodedJson = decode_json($json); 
Verwandte Themen