Example #1
0
 /**
  * Helper function to gather all the curl options: global, inferred, and per request
  *
  * @param Request $request
  * @return array
  */
 private function prepareRequestOptions(Request $request)
 {
     // options for this entire curl object
     $options = $this->getOptions();
     // set the request URL
     $options[CURLOPT_URL] = $request->getUrl();
     // set the request method
     $options[CURLOPT_CUSTOMREQUEST] = $request->getMethod();
     // posting data w/ this request?
     if ($request->getPostData()) {
         $options[CURLOPT_POST] = 1;
         $options[CURLOPT_POSTFIELDS] = $request->getPostData();
     }
     // if the request has headers, use those, or if there are global headers, use those
     if ($request->getHeaders()) {
         $options[CURLOPT_HEADER] = 0;
         $options[CURLOPT_HTTPHEADER] = $request->getHeaders();
     } elseif ($this->getHeaders()) {
         $options[CURLOPT_HEADER] = 0;
         $options[CURLOPT_HTTPHEADER] = $this->getHeaders();
     }
     // if the request has options set, use those and have them take precedence
     if ($request->getOptions()) {
         $options = $request->getOptions() + $options;
     }
     return $options;
 }
Example #2
0
 /**
  * Get last used Proxy's data
  *
  * @param  Request $request
  * @return bool
  */
 public function getProxyInfo(Request $request)
 {
     // Response Info
     $responseInfo = $request->getResponseInfo();
     $last_result = !isset($responseInfo['http_code']) ? null : $responseInfo['http_code'];
     $last_load_time = !isset($responseInfo['total_time']) ? null : $responseInfo['total_time'];
     // Request options
     $requestOptions = $request->options;
     $ip = !isset($requestOptions[10004]) ? null : $requestOptions[10004];
     $data = ['last_result' => $last_result, 'last_load_time' => $last_load_time, 'error_html' => null];
     // If error, save HTML
     if ($last_result > 200) {
         $data['error_html'] = $request->getResponseText();
     }
     return true;
 }