Когда я использую плакат для публикации файла на URL, произошла ошибка

Это мой код:

user_agent = *Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)*

#######cookie

opener = poster.streaminghttp.register_openers()

opener.add_handler(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))

params={*zipFile*:open("123456.zip","rb"),"projectName":"test"}

datagen, headers = poster.encode.multipart_encode(params)

reqIdea = urllib2.Request("http://biqatest.baidu.com/dispatch/project/upload", datagen, headers)

reqIdea.add_header(*User-Agent*,user_agent)

print urllib2.urlopen(reqIdea).read()

и тогда произошла ошибка:

File "C:\Python27\lib\urllib2.py", line 382, in _call_chain

result = func(*args)

File "C:\Python27\lib\urllib2.py", line 531, in http_error_default

raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)

urllib2.HTTPError: HTTP Error 405: Method Not Allowed

Прежде чем загрузить файл, я должен войти в систему.

так что я пользователь cookie.

некоторый код опущен.

это не имеет значения.

1 ответ

Я предполагаю, что вы пытаетесь сделать запрос POST. Для этого вам нужно будет установить get_method соответственно. Просто установите:

reqIdea.get_method = lambda: "POST"

Я бы также посоветовал вам использовать более симпатичную стороннюю библиотеку для подобных вещей. (например, запросы)

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