使用HTTP时出现Python套接字错误

时间:2017-05-19 20:05:40

标签: python http

我正在尝试在图像中编写如下所示的简单代码

enter image description here

我得到以下错误

enter image description here

请您告诉我为什么我会收到错误并找到解决问题的方法?

1 个答案:

答案 0 :(得分:1)

您的HTTP请求在某些方面有误:

  1. 这些应该是\r\n,而不是/n/n\r\n是回车符和换行符的转义序列,因此您可以将它们写在字符串文字中。

    GET http://www.py4inf.com/code/romeo.txt HTTP/1.0/n/n
                                                     ^^^^
    
  2. 发送GET http://www.py4inf.com/code/romeo.txt就像在浏览器中打开以下链接一样:

    http://www.py4inf.com/http://www.py4inf.com/code/romeo.txt
    

    您想要发送GET /code/romeo.txt

  3. 您错过了Host标题,因此网络服务器很可能无法响应,因为单个服务器可能会托管多个网站。

  4. 您需要使用\r\n终止您的HTTP请求。

  5. 正确的请求如下:

    mysock.send('GET /code/romeo.txt HTTP/1.0\r\n')
    mysock.send('Host: www.py4inf.com\r\n')
    mysock.send('\r\n')