IndexError: перечислите индекс из диапазона

#!/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
0
задан 19 September 2013 в 18:47

1 ответ

Что Вы предоставляете, как введено вопросу?

'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

0
ответ дан 19 September 2013 в 18:47

Другие вопросы по тегам:

Похожие вопросы: