Как отправить простой HTTP-запрос на URL? - PullRequest
0 голосов
/ 21 октября 2018

У меня есть http-запрос, сгенерированный почтальоном:

GET http://google.com/ HTTP/1.1
cache-control: no-cache
User-Agent: PostmanRuntime/7.3.0
Accept: */*
Host: google.com
accept-encoding: gzip, deflate
Connection: keep-alive

Я получаю эти типы http-запросов от клиента через сокет в python и хочу отправить его на указанный URL-адрес.

Я знаком с библиотекой запросов, но, учитывая тот факт, что клиент может отправлять http-запросы любого типа, кажется неэффективным разбивать запрос и перестраивать его.

есть ли что-то простое и удобноеспособ отправить этот запрос непосредственно на его URL?

заранее спасибо.

1 Ответ

0 голосов
/ 22 октября 2018

очевидно, что одним из способов достижения этого является использование сокета TCP, как упомянуто в комментариях, это можно сделать так:

server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
port = 80
try:
    server_socket.connect((url,port))
    server_socket.send(str.encode(body)) # encoding needed for streaming in bytes
except socket.error as e:
    print(str(e))
    sys.exit(1)

в качестве примечания, URL не должен содержать 'http://' или 'https://'., если это так, возникает ошибка

...