开发者

uploading file contents in python takes a long time

I'm trying to upload files with the following code:

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

def se开发者_如何学PythonndUpload(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

The encode_multipart_formdata() comes from http://code.activestate.com/recipes/146306/

When I execute the method it takes a long time to complete. In fact, I don't think it will end.. On the network monitor I see that data is transferred, but the method doesn't end...

Why is that? Should I set a timeout somewhere?


You don't seem to be sending the body of your request to the server, so it's probably stuck waiting for content-length bytes to arrive, which they never do.

Are you sure that

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

shouldn't read

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

?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜