Server IP : 85.214.239.14 / Your IP : 3.142.251.42 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/2/task/2/cwd/proc/3/cwd/usr/share/doc/python3-h11/examples/ |
Upload File : |
import socket import ssl import h11 ################################################################ # Setup ################################################################ conn = h11.Connection(our_role=h11.CLIENT) ctx = ssl.create_default_context() sock = ctx.wrap_socket( socket.create_connection(("httpbin.org", 443)), server_hostname="httpbin.org" ) ################################################################ # Sending a request ################################################################ def send(event): print("Sending event:") print(event) print() # Pass the event through h11's state machine and encoding machinery data = conn.send(event) # Send the resulting bytes on the wire sock.sendall(data) send( h11.Request( method="GET", target="/get", headers=[("Host", "httpbin.org"), ("Connection", "close")], ) ) send(h11.EndOfMessage()) ################################################################ # Receiving the response ################################################################ def next_event(): while True: # Check if an event is already available event = conn.next_event() if event is h11.NEED_DATA: # Nope, so fetch some data from the socket... data = sock.recv(2048) # ...and give it to h11 to convert back into events... conn.receive_data(data) # ...and then loop around to try again. continue return event while True: event = next_event() print("Received event:") print(event) print() if type(event) is h11.EndOfMessage: break ################################################################ # Clean up ################################################################ sock.close()