2017-02-15 2 views
0

Я пытаюсь поместить файл в URL с включенным WebDav. код выглядит следующим образом:python 3 получение 401 using requests.put

headers = {'Authorization':'Basic', 'username': 'doc_iconx', 'password': 'doc_iconx'} 
    id = "SOMEID" 
    pw = "SOMEPW" 
    try: 
     url = 'https://mywebsite.com/Dir/' 
     files = {'upload_file': open(fileName, 'rb')} 
     r = requests.put(url,auth=HTTPDigestAuth(id,pw), files=files, headers={'User-Agent': 'Mozilla' 
    }) 

я вернусь:

<title>401 Unauthorized</title> 
</head><body> 
<h1>Unauthorized</h1> 
<p>This server could not verify that you 
are authorized to access the document 
requested. Either you supplied the wrong 
credentials (e.g., bad password), or your 
browser doesn't understand how to supply 
the credentials required.</p> 
</body></html> 

Я знаю, ID/пароль хорошо, потому что я могу сделать, используя положить локон

Есть идеи?

+0

Из того, что я вижу, вы, вероятно, должны использовать 'HTTPBasicAuth' вместо' HTTPDigestAuth'. Вы также упоминаете 'post', но в своем примере вы делаете' put'. – sal

+0

Спасибо за указание моей опечатки. Я исправил описания, которые будут .put. – user3670332

+0

Пробовал использовать HTTPBasicAuth. Теперь я получаю: Ошибка клиента 409: конфликт для URL: https://content-qa.homedepot.com/IconX/Report/ – user3670332

ответ

0

С вашей схемы аутентификации с помощью Basic, все, что вы должны сделать, это использовать HTTPBasicAuth вместо HTTPDigestAuth:

r = requests.put(url,auth=HTTPBasicAuth(id,pw), files=files, headers={'User-Agent': 'Mozilla'}) 

, для которых requests на самом деле имеет даже ярлык, не определяя режим:

r = requests.put(url,auth=(id,pw), files=files, headers={'User-Agent': 'Mozilla'}) 
0

У меня было две разные проблемы. Сэл исправил мою ошибку Auth. Вторая ошибка была глупой пользовательской ошибкой. Мне нужно добавить имя файла, которое я хотел загрузить в конец URL-адреса. То, как оно было построено, было попыткой создать файл с именем Report. Однако Report - это существующий каталог, где я намеревался написать файл.

+0

Рад, что все работает. Пожалуйста, подумайте о принятии моего ответа, поскольку он решил вашу оригинальную размещенную проблему. – sal

Смежные вопросы