Когда я использую плакат для публикации файла на 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"
Я бы также посоветовал вам использовать более симпатичную стороннюю библиотеку для подобных вещей. (например, запросы)