如何通过Python套接字与HTTP / HTTPS服务器通信?

时间:2015-06-01 16:53:34

标签: python sockets http https proxy

我正在尝试在Python中创建一个TCP套接字服务器,它在从客户端接收到一串字节后,将接收到的数据(不知道它实际上是什么,假设它是一个有效的HTTP请求)传递给HTTP或HTTPS代理并等待结果,我的代码看起来像这样:

import socket

def test(host, port):
   sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
   sock.connect((socket.gethostbyname(host), int(port))

   msg = """GET / HTTP/1.1 
   Host: www.bing.com    
   User-Agent: Firefox

   """

  sent_count = sock.send(msg)
  recv_value = sock.recv(2048)
  print('recvieved:',)
  print str(recv_value)
  pass

if __name__ == '__main__':
   test(host='x.x.x.xx', port='80') # a https proxy server
   test(host='yy.yy.yy.yy', port='80') # a http proxy server

但是当我连接到HTTP代理服务器时,它会返回如下内容:

HTTP/1.1 404 Not Found

当我连接到HTTPS代理服务器时,它会显示如下内容:

HTTP/1.0 400 Bad Request

所以想知道是否有人知道如何通过Python中的套接字向HTTP / HTTPS服务器发送HTTP请求?或者如何在Python中使用套接字将任意数据串重定向到HTTP / HTTPS代理服务器?任何建议都非常感谢,提前感谢。

0 个答案:

没有答案