Python Socket编程:发表句子 - 信息没有到达Web服务器?

时间:2015-08-19 15:31:38

标签: python sockets

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

#!/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)我想知道我是什么#39;做错了。非常感谢任何帮助我现在到处都是:(

1 个答案:

答案 0 :(得分:2)

更改

TCP_IP = ('http://www.inf.utfsm.cl/~mvaras/tarea1.php')

TCP_IP = 'www.inf.utfsm.cl'

然后您需要发送“~mvaras / tarea1.php”的HTTP请求

问题在于您尝试通过TCP连接在HTTP协议中进行通信 - HTTP是一种更高级别的协议。

而不是使用socket,您需要使用requests库。