загрузка содержимого файла в python занимает много времени - PullRequest
0 голосов
/ 24 марта 2011

Я пытаюсь загрузить файлы с помощью следующего кода:

url = "/folder/sub/interface?"
connection = httplib.HTTPConnection('www.mydomain.com')

def sendUpload(self):
    fields = []
    file1 = ['file1', '/home/me/Desktop/sometextfile.txt']
    f = open(file1[1], 'r')
    file1.append(f.read())
    files = [file1]
    content_type, body = self.encode_multipart_formdata(fields, files)

    myheaders['content-type'] = content_type
    myheaders['content-length'] = str(len(body))

    upload_data = urllib.urlencode({'command':'upload'})
    self.connection.request("POST", self.url + upload_data, {}, myheaders)
    response = self.connection.getresponse()
    if response.status == 200:
        data = response.read()
        self.connection.close()
        print data

. Кодировка_multipart_formdata () происходит из http://code.activestate.com/recipes/146306/

.полный.На самом деле, я не думаю, что это закончится .. На сетевом мониторе я вижу, что данные передаются, но метод не заканчивается ...

Почему это так?Должен ли я установить таймаут где-нибудь?

1 Ответ

1 голос
/ 24 марта 2011

Вы, похоже, не отправляете тело вашего запроса на сервер, поэтому он, вероятно, застрял в ожидании content-length байтов, чего они никогда не делают.

Вы уверены, что

self.connection.request("POST", self.url + upload_data, {}, myheaders)

не должен читать

self.connection.request("POST", self.url + upload_data, body, myheaders)

...