Skip to main content
 首页 » 编程设计

Python Socket编程 : Post sentence之Info not reaching to web server

2024年10月24日45exmyth

所以我到达了网络服务器,我可以用下一个代码显示信息

#!/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图书馆。