2016-04-10 3 views
0

Ich kann nicht mit dem Reed-api zu verbinden scheinen, docs hier: https://www.reed.co.uk/developers/jobseekerProbleme bei der Verbindung zu Reed api - php

es heißt:

You will need to include your api key for all requests in a basic authentication http header as the username, leaving the password empty. 

zur Zeit mein Code wie folgt aussieht:

$api_key = 'MY-API-KEY'; 
    $url = ' https://www.reed.co.uk/api/1.0/search?keywords=Accounts Assistant&resultsToTake=100&resultsToSkip=0' 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, urlencode($url)); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
     'Authorization: Basic '.$api_key 
    )); 

    $server_output = curl_exec($ch); 

    curl_close($ch); 

    var_dump($server_output); 

ist der Ausgang immer:

bool(false) 

Gibt es etwas, das ich vermisst habe? Kann jemand anderes eine Verbindung herstellen? Ich habe die URL direkt in meinem Browser versucht und es funktioniert, nachdem ich meinen API-Schlüssel in der Popup-Authentifizierungsbox verwendet habe, damit ich weiß, dass die URL und der API-Schlüssel korrekt sind.

+0

Ist Ihre Verbindung korrekt? –

+0

Entschuldigung, was meinst du damit? – rpsep2

+0

Ihr Berechtigungsheader sollte wahrscheinlich "Authorization: Basic" .base64_encode ($ your_api_key. ":") 'Sein. – Chris

Antwort

0

Bitte lesen Sie diese Antwort (https://stackoverflow.com/a/13654911/5056954)

Ich versuchte, die Reed-Website zugreifen und es scheint, es ist auch nach einem Benutzernamen gefragt. Grund Auth ist Base64 auch codiert, so dass die folgenden Ausschnitt sollte für Sie arbeiten, wenn der Benutzername nicht erforderlich ist:

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
     'Authorization: Basic '. base64_encode($api_key) 
    )); 
0

Der einfachste Weg ist Postman zu verwenden. Sobald Sie Ihre Anfrage abgestimmt haben, erhalten Sie Codeschnipsel in vielen Programmiersprachen.

$curl = curl_init(); 

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://www.reed.co.uk/api/1.0/search?keywords=accountant&location=london", 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_ENCODING => "", 
    CURLOPT_MAXREDIRS => 10, 
    CURLOPT_TIMEOUT => 30, 
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
    CURLOPT_CUSTOMREQUEST => "GET", 
    CURLOPT_HTTPHEADER => array(
"authorization: Basic YOUR-AUTOMATICALLY-ENCODED-API-KEY-BY-POSTMAN", 
"cache-control: no-cache" 
), 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $response; 
} 

Der Code von Postbote enthält ("Briefträger-Token: xxxxxxx-xxxxxxx-xxxx"). Löschen Sie das einfach.

Verwandte Themen