Hi,
ich versuche gerade die Json-Rpc Api zu testen aber ich bekomme immer „Falscher Username/Passwort“.
Kann es daran liegen das mein Lizenz-Username eine @ beinhaltet? Ich habs mit %40 probiert aber klappt auch nicht.
Auch per Base64 im Header mit „Authorization: Basic XXXXXXX“ klappt es leider nicht.
Aktiviert habe ich den Remote Zugang natürlich und das Passwort hab ich auch mehrfach neu gesetzt zum Testen.
Vielleicht hat ja jemand einen Tipp, Danke
Gruß
tommi
13. Dezember 2014 um 20:52
2
Das geht auch mit dem @ im usernamen. Das haben wir alle.
in meinem API Wrapper verwende ich das so
PHP:
$content=json_encode($rpc);
$header=array('Authorization: Basic '. base64_encode($this->user.":".$this->password),
'Content-type: application/json; charset=utf-8');
$result = file_get_contents($this->url, false, stream_context_create(
array('http' => array(
'method' => 'POST',
'header' => $header,
'content' => $content
)
)
));
in Perl:
my $user=$this->getUsername;
my $pass=$this->getPassword;
my $auth=encode_base64($user. ':' . $pass );
my $json=JSON->new();
#http headers
my $headers = { 'Accept' =>'application/json',
'Content-type'=> 'application/json; charset=utf-8',
'Authorization' => 'Basic '.$auth };
#api function definition
my $rpc = {
"jsonrpc" => "2.0",
"method" => $method,
"params" => \@arguments,
"id" => "null"
};
#reset error
$this->setError(undef);
#build json string
my $params=$json->encode($rpc);
#build query object
my $client = REST::Client->new();
$client->setTimeout($this->getTimeout);
#action
$client->POST( $this->getUrl , $params , $headers );
HTH
Tommi
Hi, riesen Dank.
Hatte wohl ein Tippfehler im Authorize Header, nach dem kopieren deiner Vorlage hat es geklappt.
Gruß und schön 3. Advent