快速/guzzle-http-request

GHRequest 是一个简单的 Guzzle 包装器 + 多请求 + DomCrawler

1.0.56 2021-02-24 16:21 UTC

README

packagist

GHRequest 是一个简单的 Guzzle 包装器 + 多请求 + DomCrawler

实际文档正在制作中,但现在 请阅读测试

安装

在您的 composer.json 中要求此包,或通过运行以下命令安装:

composer require s00d/guzzle-http-request

要开始使用 Laravel,请将 Service Provider 和 Facade 添加到您的 config/app.php

'providers' => [
	// ...
	 s00d\GuzzleHttpRequest\GHRServiceProvider::class,
]
'aliases' => [
	// ...
	'GHR' => s00d\GuzzleHttpRequest\Facades\GHRFacade::class,
]

发布配置

从项目的根目录运行此命令行

php artisan vendor:publish

一个配置文件将被发布到 config/ghr.php

基本用法

use GHR;
...

Config::set('ghr.cookie_file', "/cookie/text.txt");
$request = GHR::createRequest()->setProxy('tcp://127.0.0.1:8080')->setRedirects(5)->setHttpErrors(false)->setTimeout(500);
$request->addHeader('user-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36');
$response = $request->setUrl('https://')->setType('POST')->send();

$crawler = $response->getCrawler();
try{
    $crawler->filter('.exit')->html();
    print_r(Carbon::now()->toTimeString().": Client auth\n");
} catch(\Exception $e) {
    print_r(Carbon::now()->toTimeString().": Client NOT auth\n");
}

$form = $crawler->selectButton('next')->form();

$form->setValues([
    'user' => $user,
]);

$response->sendForm($form);

var_dump($response->getContents());
var_dump($response->getJson());
...

$response = GHR::createRequest()
    ->setMultipleFlowCount(10) 
    ->setProxy('tcp://127.0.0.1:8080')
    ->removeDataParams()->addToQueue('/guzzle-test/get', 'GET', 0)
    ->setBody(['foo' => 'bar'], 'form_params')->addToQueue('/guzzle-test/post',    'POST',   1)
    ->setBody(['foo' => 'bar'], 'form_params')->addToQueue('/guzzle-test/put',     'PUT',    2)
    ->setBody(['foo' => 'bar'], 'form_params')->addToQueue('/guzzle-test/patch',   'PATCH',  3)
    ->setBody(['foo' => 'bar'], 'form_params')->addToQueue('/guzzle-test/delete'), 'DELETE', 4)
    ->multipleSend('form_params')->getMultiResp();

var_dump($response->responses()); // all responses
var_dump($response->errors());
var_dump($response->finished());