我之前从未使用过WebDav,但最近我的客户端要求我将一些文件上传到他的服务器。这个过程应该是自动化的,所以我决定用python来做这个
我的客户以下列格式向我提供了有关服务器的信息:
服务器位置:\ 123.456.789.012 \ Something
用户名:用户
密码:传递
域名:somedomain
我正在尝试使用easywebdav
框架来完成这项工作,但是我得到以下结果:
代码:
webdav = easywebdav.connect(
host='123.456.789.012/Something',
username='user',
port=80,
protocol="http",
password='pass'
)
print(webdav.ls())
我得到的例外是
操作:PROPFIND。
预期代码:207多状态,301永久移动
实际代码:401 Unauthorized
我可能无法正确理解所有内容,因为我已经尝试了多个框架并且它们都以相同的方式失败,但我已经通过MAC OS X webdav客户端内置Finder使用相同的凭据成功连接到服务器,因此它确实有效正确。
我很抱歉问题的格式,可能缺乏细节,经过几个小时试图解决这个问题,我目前很绝望。随意在评论中提出任何问题!
答案 0 :(得分:0)
找到解决我问题的方法。在使用Wireshark查找我的OS X(WebdavFS)如何连接之后,我发现服务器是Microsoft IIS 7.5并且需要NTLM Auth而不是Basic Auth。没有找到任何支持NTLM Auth的python库,所以幸运的是,由于应用程序相对较小,我使用neon library转换为C ++。