2017-01-21 37 views
-1

我以前从未使用WebDav,但最近我的客户端要求我将一些文件上传到他的服务器。这proccess应该是自动化,所以我决定用Python来做到这一点使用Python连接到WebDav时出现的问题

我的客户给了我关于在以下格式的服务器的信息:

服务器所在地:\ 123.456.789.012 \东西

用户名:用户

密码:pass

域: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未经授权

我可能无法理解一切正常,因为我已经尝试过多种框架,他们都无法以同样的方式,但是我已经通过MAC OS X webdav客户端内置Finder使用相同凭证成功连接到服务器,因此它可以正常工作。

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

+0

您好,您可以尝试'的WebDAV = easywebdav.connect( 主机= '123.456.789.012', 用户名= '用户', 端口= 80, 协议= “HTTP”, 密码= '通行证', path ='/ something' )'? –

+0

@ piotr-dawidiuk那么我们有一些进展。对于'webdav.ls()'这是'webdav.ls(“。”)'我得到错误500,对'webdav.ls(“/ Something”)'错误401再次。有任何想法吗? – tna0y

+0

更新:似乎500是一个单一的问题。现在我得到了401任何路径。 – tna0y

回答

0

找到解决我的问题。使用Wireshark找出我的OS X(WebdavFS)连接后,我发现服务器是Microsoft IIS 7.5,并且需要NTLM Auth而不是基本身份验证。由于应用程序相对较小,我没有找到任何支持NTLM Auth的python库,所以我很乐意使用neon library将它切换到C++。

相关问题