public function __construct($options = array(), $headers = array()) { $worker = new MultiRequest_Handler(); $worker->setConnectionsLimit(self::CONNECTIONS_LIMIT); $worker->setRequestingDelay(self::DELAY_MILLISECONDS); $worker->onRequestComplete(array($this, "save_headers")); $worker->onRequestComplete(array($this, "save_data")); $headers = array_replace($this->default_headers, $headers); foreach ($headers as $key => $header) { $headers[$key] = "{$key}: {$header}"; } $headers = array_values($headers); $worker->requestsDefaults()->addHeaders($headers); $options = array_replace($this->default_options, $options); $worker->requestsDefaults()->addCurlOptions($options); $this->worker = $worker; }
/*************************************************************** MULTIREQUEST INIT **************************************************************/ $mrHandler = new MultiRequest_Handler(); $mrHandler->setConnectionsLimit(CONNECTIONS_LIMIT); $mrHandler->onRequestComplete('debugRequestComplete'); $mrHandler->onRequestComplete('saveCompleteRequestToFile'); $headers = array(); $headers[] = 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'; $headers[] = 'Cache-Control: no-cache'; $headers[] = 'Connection: Keep-Alive'; $headers[] = 'Keep-Alive: 300'; $headers[] = 'Accept-Charset: UTF-8,Windows-1251,ISO-8859-1;q=0.7,*;q=0.7'; $headers[] = 'Accept-Language: ru,en-us,en;q=0.5'; $headers[] = 'Pragma:'; $mrHandler->requestsDefaults()->addHeaders($headers); $options = array(); $options[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12'; $mrHandler->requestsDefaults()->addCurlOptions($options); // Login $request = new MultiRequest_Request('https://banweb.banner.vt.edu/ssb/prod/twbkwbis.P_ValLogin'); $request->setCookiesStorage(COOKIE_FILE); $request->setPostVar('pid', PID); $request->setPostVar('password', PASSWORD); $request->onComplete('mainPage'); $mrHandler->pushRequestToQueue($request); function mainPage(MultiRequest_Request $request, MultiRequest_Handler $handler) { $headers = $request->getResponseHeaders(); $cookies = $request->getRespopnseCookies(); $request = new MultiRequest_Request('https://banweb.banner.vt.edu/ssb/prod/twbkwbis.P_GenMenu?name=bmenu.P_MainMnu');