Note that there are some explanatory texts on larger screens.

plurals
  1. POphp curl multi init HTTP 401 Unauthorized
    primarykey
    data
    text
    <p>I have used a curl single init to issue an HTTP Get and all worked fine. Now I tried to use a multi init (as I need to get multiple URLs) and I get a 401 message with "This request requires HTTP authentication" on the response to the Get. Same Curl options where used on both cases. Here is the code for th multi init and below it the single init function.</p> <pre><code>protected function _multiQueryRunkeeper($uri, $subscribersInfo,$acceptHeader) { $curlOptions = array( CURLOPT_URL =&gt; 'https://api.runkeeper.com' . $uri, CURLOPT_SSL_VERIFYPEER =&gt; false, CURLOPT_RETURNTRANSFER =&gt; 1, CURLOPT_TIMEOUT =&gt; 8, CURLOPT_HTTPAUTH =&gt; CURLAUTH_ANY, CURLOPT_HTTPGET =&gt; true ); $curl_array = array(); $mh = curl_multi_init(); foreach ($subscribersInfo as $i =&gt; $subscriber) { $curl_array[$i] = curl_init(); curl_setopt_array($curl_array[$i],$curlOptions); curl_setopt($curl_array[$i], CURLOPT_HEADER, array('Authorization: Bearer '.$subscriber['token'], 'Accept: application/vnd.com.runkeeper.' . $acceptHeader)); curl_multi_add_handle($mh,$curl_array[$i]); } $running = NULL; do { usleep(10000); curl_multi_exec($mh,$running); } while($running &gt; 0); $subscribersWorkoutFeed = array(); foreach($subscribersInfo as $i =&gt; $subscriber) { $subscribersWorkoutFeed[$i] = curl_multi_getcontent($curl_array[$i]); curl_multi_remove_handle($mh, $curl_array[$i]); } curl_multi_close($mh); return $subscribersWorkoutFeed; } protected function _singleQueryRunkeeper($uri, $subscriberToken,$acceptHeader) { try{ // get fitness user's fitness activities from Runkeeper $this-&gt;_curl = isset($this-&gt;_curl)? $this-&gt;_curl : curl_init(); $curlOptions = array( CURLOPT_URL =&gt; 'https://api.runkeeper.com' . $uri, CURLOPT_HTTPHEADER =&gt; array('Authorization: Bearer '.$subscriberToken, 'Accept: application/vnd.com.runkeeper.' . $acceptHeader), CURLOPT_SSL_VERIFYPEER =&gt; false, CURLOPT_RETURNTRANSFER =&gt; 1, CURLOPT_TIMEOUT =&gt; 8, CURLOPT_HTTPGET =&gt; true ); curl_setopt_array($this-&gt;_curl,$curlOptions); $response = curl_exec($this-&gt;_curl); if($response == false) { if (Zend_Registry::isRegistered('logger')) { $logger = Zend_Registry::get('logger'); $logger-&gt;log('Curl error on _singleQueryRunkeeper: ' . curl_error($this-&gt;_curl), Zend_Log::INFO); } return null; } $data = Zend_Json::decode($response); return($data); } catch(Exception $e){ if (Zend_Registry::isRegistered('logger')) { $logger = Zend_Registry::get('logger'); $logger-&gt;log('exception occured on getUsersLatestWorkoutsFromRK. Curl error' . curl_error($this-&gt;_curl), Zend_Log::INFO); } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload