2016-10-14 4 views
0

Je l'ai utilisé http://requests.ryanmccue.info/ et https://github.com/rmccue/Requestsauthentification Digest en utilisant demande PHP ou tout autre dans CodeIgniter

J'utilise la bibliothèque de demande, mais toute autre bibliothèque peut également être proposé.

Mon code pour CodeIgniter

class Home extends CI_Controller{ 
      public function index(){ 
       $this->load->library('PHPRequest');  
       $this->rest_client(); 
      } 
      function rest_client(){ 
       $user = 'myusername'; 
       $pass = 'mypass'; 
       $BaseApiUrl = 'myurl'; 

       $headers = array('Accept' => 'application/json'); 
       $options = array('auth' => new Requests_Auth_Basic(array($user, $pass))); 
       $request = Requests::get($BaseApiUrl, $headers, $options); 
       var_dump($request->status_code); 
       var_dump($request->body); 

      } 
     } 

Mais je reçois l'erreur suivante:

int(401) string(28) "HTTP Digest: Access denied. " 

Répondre

0

En utilisant Curl PHP maintenant

$options = array(
       CURLOPT_URL   => $url, 
       CURLOPT_HEADER   => false,  
       CURLOPT_VERBOSE  => true, 
       CURLOPT_RETURNTRANSFER => true, 
       CURLOPT_FOLLOWLOCATION => true, 
       CURLOPT_SSL_VERIFYPEER => false, // for https 
       CURLOPT_USERPWD  => $username . ":" . $password, 
       CURLOPT_HTTPAUTH  => CURLAUTH_DIGEST 

     ); 
     $ch = curl_init(); 
     curl_setopt_array($ch, $options); 
     try { 
      $raw_response = curl_exec($ch); 
      // validate CURL status 
      if(curl_errno($ch)) 
       throw new Exception(curl_error($ch), 500); 
      // validate HTTP status code (user/password credential issues) 
      $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
      if ($status_code != 200) 
       throw new Exception("Response with Status Code [" . $status_code . "].", 500); 
     } catch(Exception $ex) { 
      if ($ch != null) curl_close($ch); 
      throw new Exception($ex); 
     } 
     if ($ch != null) curl_close($ch); 
     return json_decode($raw_response);