2017-06-12 1 views
0

Ich muss eine API-Zugriff auf eine GET-Anforderung verwenden, aber das Ergebnis ist:Wie kann ich CURL in PHP verwenden, um einen 301 (Moved Permanently) Fehler beim Zugriff auf eine API zu behandeln?

301 dauerhaft verschoben.

Hier ist mein Code:

$curl = curl_init(); 
    $url="https://xxx.yyy.com/zzz/v1.0"; 
    curl_setopt_array($curl, array(
       CURLOPT_URL => $url, 
       CURLOPT_RETURNTRANSFER => true, 
       CURLOPT_CUSTOMREQUEST => "GET", 
       CURLOPT_HTTPHEADER => array(
        "authorization: Bearer sadhuUasjhda" 
        ), 
        )); 

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

    curl_close($curl); 

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

    print_r($result);exit; 

ich gelesen habe, dass dieses Problem durch Zugabe von CURLOPT_POSTREDIR lösen können, aber das ist nur funktioniert, wenn ich POST verwendet.

Ich habe versucht, CURLOPT_FOLLOWLOCATION zu verwenden, aber ich ein anderes Problem zu umgehen, ist das Ergebnis wie

ROTATION Error #: SSL-Zertifikat Problem: Kann nicht lokales Aussteller-Zertifikat erhalten.

FYI, ich benutze Windows und XAMPP. Und dann habe ich versucht, folgenden Anweisungen auf diesem post zu folgen, aber das Ergebnis ist immer noch das gleiche.

+0

Haben Sie versucht, CURLOPT_SSL_VERIFYPEER => false verwenden? –

+0

hey es funktioniert, vielen Dank :) @RendyEkoPrastiyo –

+0

Großbuchstaben "I" und einige andere Bearbeitungen für Klarheit/Englisch. – JYelton

Antwort

1

dank Rendy Eko Prastiyo ist die Lösung CURLOPT_SSL_VERIFYPEER auf false und CURLOPT_FOLLOWLOCATION auf true gesetzt hinzuzufügen, so dass der Code ist

$curl = curl_init(); 
$url="https://xxx.yyy.com/zzz/v1.0"; 
curl_setopt_array($curl, array(
      CURLOPT_URL => $url, 
      CURLOPT_RETURNTRANSFER => true, 
      CURLOPT_CUSTOMREQUEST => "GET", 
      CURLOPT_FOLLOWLOCATION => true, 
      CURLOPT_SSL_VERIFYPEER => false, 
      CURLOPT_HTTPHEADER => array(
       "authorization: Bearer sadhuUasjhda" 
       ), 
       )); 

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

curl_close($curl); 

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

print_r($result);exit; 
Verwandte Themen