2017-01-21 2 views
-1

Я никогда раньше не использовал WebDav, но недавно мой клиент попросил меня загрузить некоторые файлы на его сервер. Это proccess должно быть автоматизировано, поэтому я решил использовать питона сделать этоПроблемы при подключении к WebDav с использованием Python

Мой клиент дал мне информацию о сервере в следующем формате:

Расположение сервера: \ 123.456.789.012 \ Что-то

Имя пользователя: пользователь

Пароль: пароль

домен: somedomain

Я пытаюсь использовать easywebdav рамки, чтобы сделать работу, однако я получаю следующие результаты: Код:

webdav = easywebdav.connect(
    host='123.456.789.012/Something', 
    username='user', 
    port=80, 
    protocol="http", 
    password='pass' 
) 

print(webdav.ls()) 

И исключение я получаю

Операция: PROPFIND.

Ожидаемый код: 207 Multi-Status, 301 Moved Постоянно

Фактический код: 401 Несанкционированное

я не мог бы быть все понять правильно, так как я уже пробовал несколько структур, и все они не так же, , но я успешно подключился к серверу с использованием тех же учетных данных через встроенный Finder веб-клиента MAC OS X, чтобы он работал правильно.

Извините, что формат вопроса и, вероятно, отсутствие деталей, в настоящее время я отчаялся после нескольких часов, пытаясь исправить эту проблему. Не стесняйтесь спрашивать что-либо в комментариях!

+0

Здравствуйте, вы можете попробовать 'WebDAV = easywebdav.connect ( хост = '123.456.789.012', имя пользователя = 'пользователь', порт = 80, протокол = "HTTP", пароль = 'проход', path = '/ something' ) '? –

+0

@ piotr-dawidiuk Ну, у нас есть некоторый прогресс. Для 'webdav.ls()' который является 'webdav.ls (". ")' Я получаю ошибку 500, для 'webdav.ls («/Something »)' error 401 снова. Есть идеи? – tna0y

+0

ОБНОВЛЕНИЕ: 500 было одной проблемой, похоже. Теперь я получаю 401 для любого пути. – tna0y

ответ

0

Нашли решение моей проблемы. После использования Wireshark, чтобы узнать, как подключается моя OS X (WebdavFS), я узнал, что сервер Microsoft IIS 7.5 и требует NTLM Auth вместо Basic Auth. Не было найдено ни одного python-библиотек, поддерживающих NTLM Auth, к счастью из-за того, что приложение относительно небольшое. Я переключился на C++, используя neon library.

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