本文整理汇总了PHP中GuzzleHttp\Client::sendRequests方法的典型用法代码示例。如果您正苦于以下问题:PHP Client::sendRequests方法的具体用法?PHP Client::sendRequests怎么用?PHP Client::sendRequests使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GuzzleHttp\Client
的用法示例。
在下文中一共展示了Client::sendRequests方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: next
public function next()
{
if (count($this->responseCache) == 0) {
$urls = $this->pageContainer->pop($this->parallelReqeusts);
if (empty($urls)) {
return false;
}
$requests = array();
foreach ($urls as $url) {
if (!$this->isFiltered($url)) {
$request = RequestFactory::getRequest($url, 'GET', 'php://memory', [], []);
$requests[] = $request;
}
}
if (empty($requests)) {
return $this->next();
}
try {
$this->responseCache = $this->httpClient->sendRequests($requests);
} catch (MultiHttpAdapterException $e) {
$exceptions = $e->getExceptions();
$errorMessages = "";
foreach ($exceptions as $exception) {
// @fixme this must be part of the http client
$message = $exception->getMessage();
if (strpos($message, "An error occurred when fetching the URI") === 0) {
$url = substr($message, "41", strpos($message, '"', 41) - 41);
if (strpos($url, '/') === 0) {
$this->pageContainer->push(new Uri($this->startUri->getScheme() . '://' . $this->startUri->getHost() . $url));
}
} else {
$errorMessages .= $exception->getMessage() . "\n";
}
}
if ($errorMessages != "") {
throw new \RuntimeException($errorMessages);
}
}
}
if (empty($this->responseCache)) {
return $this->next();
}
$response = array_pop($this->responseCache);
if ($response->hasHeader('Content-Type')) {
$contentTypeElements = explode(';', $response->getHeader('Content-Type')[0]);
$contentType = array_shift($contentTypeElements);
if ($contentType === "text/html") {
$document = new Document((string) $response->getBody(), true);
$elements = $document->getUnorderedDependencies($response->getUri());
foreach ($elements as $element) {
$urlString = $this->createCleanUriString($element);
if (!array_key_exists($urlString, $this->comingFrom)) {
$this->comingFrom[$urlString] = $response->getUri();
}
$this->pageContainer->push($element);
}
}
}
return $response;
}