2016-11-07 4 views
0

Ich versuche mit php cURL auf eine API zugreifen. Die Dokumentation lautet:Senden von Benutzername und Passwort mit cURL

Jede Anfrage muss den API-Schlüssel enthalten, der der E-Mail-Adresse zugeordnet wurde. Es sollte über Standard-Basic-HTTP-Authentifizierung (in RFC2617 definiert als ) an den Server

präsentiert sein als

den Benutzername mit einem leeren Passwort.

Wie sende ich den API-Schlüssel als Benutzername und lasse das PW leer? Hier ist, was ich bisher:

$subscriberInfo = [ 
    'email' => $email, 
    'search' => $jobType, 
    'location' => $location 
]; 

$ch = curl_init('https://api.ExternalSiteHere'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $subscriberInfo); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: multipart/form-data' 
    )); 

// execute! 
$response = curl_exec($ch); 

// close the connection 
curl_close($ch); 

var_dump($response); 
die(); 
+0

besteht keine Möglichkeit, um dies über GET zu senden? z.B. 'https: //api.ExternalSiteHere? api_key = 123456abcdef' – Dwza

+0

Nein, nicht mit diesem API-Aufruf. –

Antwort

2

curl_setopt($ch, CURLOPT_USERNAME, base64_encode("{$username}:{$password}"));

In Ihrem Fall

curl_setopt($ch, CURLOPT_USERNAME, base64_encode("{$username}:"));

Wenn das nicht den Doppelpunkt nach dem Benutzernamen Drop funktioniert

+0

Danke, das hat funktioniert. Ich musste nur den 'base64_encode' entfernen. Am Ende sah es dann so aus: 'curl_setopt ($ ch, CURLOPT_USERNAME," Benutzername ");' –

+0

Odd normalerweise in grundlegenden Autorisierung erfordert es base64_encode; Ich bin froh, dass es irgendwie funktioniert – DdD

Verwandte Themen