import socket
host = 'www.google.com'
port = 80
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try :
client.connect((host, port))
except socket.error:
print ("Err")
package = '00101'
package.encode('utf-8')
client.sendall(package.encode(encoding = 'utf-8'))
response = client.recv(4096)
print (response.decode('UTF-8')
我不断收到b''
作为我的回复,所以我试图解码它。解析时收到的错误是unexpected EOF
。我的打印中是否应该包含decoding()
功能?我已尝试仅打印响应,.decode()
功能未解码。我该怎么办?
答案 0 :(得分:1)
您需要发送有效的HTTP请求。例如:
package = b'''GET /HTTP/1.1
Host: www.google.com
'''
client.sendall(package)
在我的机器上正确返回重定向。请注意结束请求的package
末尾的空行。
当您发送b'00101'
并开始阅读时,Google服务器尚未处理您的请求并且不会返回任何内容。通过发送尾随换行符(package = b'00101\n'
),它将开始处理您的请求,您将获得:
...
<p>Your client has issued a malformed or illegal request. <ins>That’s all we know.</ins>