I'm attempting to write a script to communicate with sharepoint via SOAP using urllib2 in Python. My code is connecting successfully to a sharepoint list, but does not do anything once connected. Could my SOAP request be wrong? It seems to be returning nothing, despite 2 list items existing on the sharepoint site.
import urllib2
from ntlm import HTTPNtlmAuthHandler
user = r'DOMAIN\myusername'
password = "password"
url = "https://mysecuresite.com/site/_vti_bin/Lists.asmx"
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, user, password)
# create the NTLM authentication handler
auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman)
# create and install the opener
opener = urllib2.build_opener(auth_NTLM)
urllib2.install_opener(opener)
request="""<?xml version="1.0" encoding="utf-8"?>
<SOAP:ENVELOPE xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP:BODY>
<?XML:NAMESPACE PREFIX = "[default] http://schemas.microsoft.com/sharepoint/soap/" NS = "http://schemas.microsoft.com/sharepoint/soap/" /><GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<listName>site</listName>
<query></query>
<rowLimit></rowLimit>
</GetListItems>
</SOAP:BODY>
</SOAP:ENVELOPE>
"""
headers={"SOAPAction":"\"http://schemas.microsoft.com/sharepoint/soap/GetListItems\"","Content-Type":"text/xml;charset=UTF-8"}
req = urllib2.Request(url, request, headers)
response=urllib2.urlopen(req)
data = response.read()
print data
I've tried using libraries like haufe.sharepoint, but they don't play nice with HTTPS and ntlm.