通过 Python 套接字库的 HTTP 请求

HTTP Requests through Python socket library

我正在尝试通过 Python 套接字库向网站发出一个简单的 HTTP GET 请求。我在这里使用的示例网站是https://azlyrics.com/lyrics/charlieputh/attention.html。我的代码是:

from socket import *
serverName = 'azlyrics.com';
serverPort = 80;
clientSocket = socket(AF_INET, SOCK_STREAM);
print(clientSocket.connect((serverName, serverPort)));
message = '''GET /lyrics/charlieputh/attention.html HTTP/1.1
Host: www.azlyrics.com
Connection: keep-alive
''';
print(message);
clientSocket.send(message.encode());
modifiedMessage = clientSocket.recv(2048).decode();
print(modifiedMessage);
clientSocket.close();

但我在 return 中没有收到任何回复消息。另外,我在 connect() 的 return 中得到的对象是 None。我用 Python 请求库尝试了相同的 URL,它工作正常。我在这里做错了什么?

HTTP 请求正文应以 \r\n (CR-LF),

结尾

请试试这个:

from socket import *
serverName = 'azlyrics.com';
serverPort = 80;
clientSocket = socket(AF_INET, SOCK_STREAM);
print(clientSocket.connect((serverName, serverPort)));
message = '''GET /lyrics/charlieputh/attention.html HTTP/1.1
Host: www.azlyrics.com
Connection: keep-alive


''';
print(message);
clientSocket.send(message.encode());
modifiedMessage = clientSocket.recv(2048).decode();
print(modifiedMessage);
clientSocket.close();