2017-07-17 67 views
0

我在我的Perl腳本中運行了一個curl請求,並且如果密碼或用戶名包含任何特殊字符(&),它會中斷url。請讓我知道我該如何解決這個問題。特殊字符包含在密碼中,它打破了URL

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

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

使用Perl模塊像'WWW :: Curl'代替CMDLINE呼叫 – Jens

+0

我找Perl中的天然方法是不使用捲曲,但使用LWP ::原生方式 – gihan

+5

的UserAgent代替。 – simbabque

回答

1

最後我用@simbabque的方式使用WP::UserAgent

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);