#!/usr/bin/env python
import httplib
import sys
#get http server ip
http_server = sys.argv[0]
#create a connection
conn = httplib.HTTPConnection(http_server)
while 1:
cmd = raw_input('input command (ex. GET index.html): ')
cmd = cmd.split()
if cmd[0] == 'exit': #type exit to end it
break
#request command to server
conn.request(cmd[0],cmd[1])
#get response from server
rsp = conn.getresponse()
#print server response and data
print(rsp.status, rsp.reason)
data_received = rsp.read()
print(data_received)
conn.close()
Traceback (most recent call last):
File "./client1.py", line 19, in <module>
conn.request(cmd[0],cmd[1])
IndexError: list index out of range
может любой говорить мне, почему та ошибка прибывает, и может любой изменять код. это - клиентский код для соединения с сервером
мой вход:GET index.html
Но теперь моя ошибка
File "./client1.py", line 19, in <module>
conn.request(cmd[0],cmd[1])
File "/usr/lib/python2.6/httplib.py", line 910, in request
self._send_request(method, url, body, headers)
File "/usr/lib/python2.6/httplib.py", line 947, in _send_request
self.endheaders()
File "/usr/lib/python2.6/httplib.py", line 904, in endheaders
self._send_output()
File "/usr/lib/python2.6/httplib.py", line 776, in _send_output
self.send(msg)
File "/usr/lib/python2.6/httplib.py", line 735, in send
self.connect()
File "/usr/lib/python2.6/httplib.py", line 716, in connect
self.timeout)
File "/usr/lib/python2.6/socket.py", line 500, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno -2] Name or service not known
Что Вы предоставляете, как введено вопросу?
'input command (ex. GET index.html): '
Код ожидает, что Вы введете команду как GET index.html
это затем разделяет это на массив, названный cmd, Позже это пробует индекс 0 и 1 доступа cmd
массив и это находят, что нет никакого cmd[1] или никакого cmd [0] и cmd[1], вероятно, из-за входа, который это получило.
В ответе на Ваш второй вопрос необходимо изменить строку
http_server = sys.argv[0]
кому:
http_server = sys.argv[1]
Вы затем запускаете свой скрипт как ./scriptname www.google.co.uk