所以我到达了网络服务器,我可以用下一个代码显示信息
#!/usr/bin/env python
import socket
import sys
HOST = 'www.inf.utfsm.cl'
GET = '/~mvaras/tarea1.php'
UA = 'tarea1'
PORT = 80
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error, msg:
sys.stderr.write("[ERROR] %s\n" % msg[1])
sys.exit(1)
try:
sock.connect((HOST, PORT))
except socket.error, msg:
sys.stderr.write("[ERROR] %s\n" % msg[1])
sys.exit(2)
sock.send("GET %s HTTP/1.1\r\nHost: %s\r\n\r\nUser-Agent: %s\r\n\r\n" % (GET, HOST, UA))
sock.send("POST Alexis Ahumada 17536441-2HTTP/1.1\r\n\r\nUser-Agent: tarea1\r\n\r\n")
data = sock.recv(1024)
string = ""
while len(data):
string = string + data
data = sock.recv(1024)
sock.close()
print string
sys.exit(0)
但问题是我发送的信息 (Alexis Ahumada 17536441-2) 从未写入服务器日志 (www.inf.utfsm.cl/~mvaras/tarea1.log) 我想知道我是什么做错了。非常感谢任何帮助我现在真的到处都看过:(
请您参考如下方法:
改变
TCP_IP = ('http://www.inf.utfsm.cl/~mvaras/tarea1.php')
到
TCP_IP = 'www.inf.utfsm.cl'
然后您需要发送一个 HTTP 请求“~mvaras/tarea1.php”
问题在于您正在尝试通过 TCP 连接使用 HTTP 协议(protocol)进行通信 - HTTP 是更高级别的协议(protocol)。
您需要使用 requests 而不是使用 socket图书馆。
