Skip to content

Commit abc6631

Browse files
committed
Add improved HTTP examples
1 parent a5a84ba commit abc6631

7 files changed

+76
-7
lines changed

composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"require-dev": {
2626
"phpunit/phpunit": "^9.0 || ^7.0 || ^5.0 || ^4.8",
2727
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3",
28+
"react/http": "^1.0",
2829
"clue/block-react": "^1.1"
2930
}
3031
}

examples/01-http-request.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
// A simple example which uses an HTTP client to request https://example.com/ through an HTTP CONNECT proxy.
4+
// You can use any kind of proxy, for example https://github.com/leproxy/leproxy and excecute it like this:
5+
//
6+
// $ php leproxy-latest.php
7+
//
8+
// To run the example, go to the project root and run:
9+
//
10+
// $ php examples/01-http-requests.php
11+
//
12+
// Make sure you're referencing the right proxy adress inside the ProxyConnector
13+
14+
use React\HTTP\Browser;
15+
16+
require __DIR__ . '/../vendor/autoload.php';
17+
18+
$loop = React\EventLoop\Factory::create();
19+
$proxy = new Clue\React\HttpProxy\ProxyConnector('127.0.0.1:8080', new React\Socket\Connector($loop));
20+
21+
$connector = new React\Socket\Connector($loop, array(
22+
'tcp' => $proxy,
23+
'dns' => false
24+
));
25+
26+
$browser = new React\Http\Browser($loop, $connector);
27+
28+
$browser->get('https://example.com/')->then(function (Psr\Http\Message\ResponseInterface $response) {
29+
var_dump($response->getHeaders(), (string) $response->getBody());
30+
}, 'printf');
31+
32+
$loop->run();

examples/01-proxy-https.php renamed to examples/11-proxy-raw-https-protocol.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
<?php
22

33
// A simple example which requests https://google.com/ through an HTTP CONNECT proxy.
4+
// You can use any kind of proxy, for example https://github.com/leproxy/leproxy and excecute it like this:
5+
//
6+
// $ php leproxy-latest.php
7+
//
8+
// To run the example, go to the project root and run:
9+
//
10+
// $ php examples/11-proxy-raw-https-protocol.php
11+
//
412
// The proxy can be given as first argument and defaults to localhost:8080 otherwise.
513
//
614
// For illustration purposes only. If you want to send HTTP requests in a real
7-
// world project, take a look at https://github.com/clue/reactphp-buzz#http-proxy
15+
// world project, take a look at example-01
816

917
use Clue\React\HttpProxy\ProxyConnector;
1018
use React\Socket\Connector;

examples/02-optional-proxy-https.php renamed to examples/12-optional-proxy-raw-https-protocol.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,17 @@
22

33
// A simple example which requests https://google.com/ either directly or through
44
// an HTTP CONNECT proxy.
5+
// To run the example, go to the project root and run:
6+
//
7+
// $ php examples/12-optional-proxy-raw-https-protocol.php
8+
//
59
// The Proxy can be given as first argument or does not use a proxy otherwise.
610
// This example highlights how changing from direct connection to using a proxy
711
// actually adds very little complexity and does not mess with your actual
812
// network protocol otherwise.
913
//
1014
// For illustration purposes only. If you want to send HTTP requests in a real
11-
// world project, take a look at https://github.com/clue/reactphp-buzz#http-proxy
15+
// world project, take a look at example-01
1216

1317
use Clue\React\HttpProxy\ProxyConnector;
1418
use React\Socket\Connector;

examples/03-custom-proxy-headers.php renamed to examples/13-custom-proxy-headers.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
<?php
22

33
// A simple example which requests https://google.com/ through an HTTP CONNECT proxy.
4+
// You can use any kind of proxy, for example https://github.com/leproxy/leproxy and excecute it like this:
5+
//
6+
// $ php leproxy-latest.php
7+
//
8+
// To run the example, go to the project root and run:
9+
//
10+
// $ php examples/13-custom-proxy-headers.php
11+
//
412
// The proxy can be given as first argument and defaults to localhost:8080 otherwise.
513
//
614
// For illustration purposes only. If you want to send HTTP requests in a real
7-
// world project, take a look at https://github.com/clue/reactphp-buzz#http-proxy
15+
// world project, take a look at example-01
816

917
use Clue\React\HttpProxy\ProxyConnector;
1018
use React\Socket\Connector;

examples/11-proxy-smtp.php renamed to examples/21-proxy-raw-smtp-protocol.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
<?php
22

3-
// A simple example which uses a plain SMTP connection to Googlemail through a HTTP CONNECT proxy.
4-
// Proxy can be given as first argument and defaults to localhost:8080 otherwise.
3+
// A simple example which requests https://google.com/ through an HTTP CONNECT proxy.
4+
// You can use any kind of proxy, for example https://github.com/leproxy/leproxy and excecute it like this:
5+
//
6+
// $ php leproxy-latest.php
7+
//
8+
// To run the example, go to the project root and run:
9+
//
10+
// $ php examples/21-proxy-raw-smtp-protocol.php
11+
//
12+
// The proxy can be given as first argument and defaults to localhost:8080 otherwise.
513
// Please note that MANY public proxies do not allow SMTP connections, YMMV.
614

715
use Clue\React\HttpProxy\ProxyConnector;

examples/12-proxy-smtps.php renamed to examples/22-proxy-raw-smtps-protocol.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
<?php
22

3-
// A simple example which uses a secure SMTP connection to Googlemail through a HTTP CONNECT proxy.
4-
// Proxy can be given as first argument and defaults to localhost:8080 otherwise.
3+
// A simple example which requests https://google.com/ through an HTTP CONNECT proxy.
4+
// You can use any kind of proxy, for example https://github.com/leproxy/leproxy and excecute it like this:
5+
//
6+
// $ php leproxy-latest.php
7+
//
8+
// To run the example, go to the project root and run:
9+
//
10+
// $ php examples/22-proxy-raw-smtps-protocol.php
11+
//
12+
// The proxy can be given as first argument and defaults to localhost:8080 otherwise.
513
// This example highlights how changing from plain connections (see previous
614
// example) to using a secure connection actually adds very little complexity
715
// and does not mess with your actual network protocol otherwise.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy