使用Python

时间:2017-01-21 01:58:00

标签: python python-3.x http webdav

我之前从未使用过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使用相同的凭据成功连接到服务器,因此它确实有效正确。

我很抱歉问题的格式,可能缺乏细节,经过几个小时试图解决这个问题,我目前很绝望。随意在评论中提出任何问题!

1 个答案:

答案 0 :(得分:0)

找到解决我问题的方法。在使用Wireshark查找我的OS X(WebdavFS)如何连接之后,我发现服务器是Microsoft IIS 7.5并且需要NTLM Auth而不是Basic Auth。没有找到任何支持NTLM Auth的python库,所以幸运的是,由于应用程序相对较小,我使用neon library转换为C ++。