小编dav*_*ugh的帖子

Python套接字模块.连接到HTTP代理,然后在外部资源上执行GET请求

首先,我了解还有其他模块,如请求更适合和更简单的使用,但我想使用套接字模块来更好地理解HTTP.

我有一个简单的脚本,执行以下操作:

客户端---> HTTP代理--->外部资源(GET Google.com)

我可以连接到HTTP代理,但是当我将google.com的GET请求标头发送到代理时,它根本不会为我提供任何响应.

#!/usr/bin/python
import socket
import sys



headers = """GET / HTTP/1.1\r\n
Host: google.com\r\n\r\n"""



socket = socket

host = "165.139.179.225" #proxy server IP
port = 8080              #proxy server port

try:
    s = socket.socket()
    s.connect((host,port))
    s.send(("CONNECT {0}:{1} HTTP/1.1\r\n" + "Host: {2}:    {3}\r\n\r\n").format(socket.gethostbyname(socket.gethostname()),1000,port,host))
    print s.recv(1096)
    s.send(headers)
    response = s.recv(1096)
   print response
   s.close()
except socket.error,m:
   print str(m)
   s.close()
   sys.exit(1)
Run Code Online (Sandbox Code Playgroud)

python sockets proxy networking http

2
推荐指数
2
解决办法
8121
查看次数

标签 统计

http ×1

networking ×1

proxy ×1

python ×1

sockets ×1