Я пишу HTTP-клиент Python. Когда у меня есть код ниже, я получаю сообщение об ошибке из терминала «index index out the range».sys.argv [1] IndexError: индекс индекса за пределами допустимого диапазона
from socket import *
import sys
server_host = sys.argv[1]
server_port = sys.argv[2]
filename = sys.argv[3]
host_port = "%s:%s" %(server_host, server_port)
try:
clientSocket = socket(AF_INET,SOCK_STREAM)
clientSocket.connect((server_host,int(server_port)))
header = {
"first_header" : "GET /%s HTTP/1.1" %(filename),
"Host": host_port,
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language": "en-US",
}
httpHeader = "\r\n".join("%s:%s" %(item,header[item]) for item in header)
print httpHeader
clientSocket.send("%s\r\n\r\n" %(httpHeader))
except IOError:
sys.exit(1)
final = ""
responseMessage = clientSocket.recv(1024)
while responseMessage:
final += responseMessage
responseMssage = clientSocket.recv(1024)
clientSocket.close()
print "final:",final
Я запустить программу из командной строки, набрав
python ./client.py http://127.0.0.1 7000 HelloWorld.html
Может кто-нибудь показать мне, что случилось с моим кодом? Заранее спасибо.
Я не вижу ничего плохого тут с этим. Попробуйте выполнить его так: ./client.py 127.0.0.1 7000 HelloWorld.html – MikeTGW
начинается с argv [0] – haifzhan
Вы можете отлаживать свой код, нет? Просто распечатайте 'sys.argv' и посмотрите, что происходит –