首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Python中的REST访问sharepoint站点?

如何通过Python中的REST访问sharepoint站点?
EN

Stack Overflow用户
提问于 2014-01-06 08:24:55
回答 4查看 123.5K关注 0票数 29

我在本地VM中的SharePoint 2013中有以下站点:

http://win-5a8pp4v402g/sharepoint_test/site_1/

当我从浏览器访问它时,它会提示我输入用户名和密码,然后正常工作。但是,我正试图使用Python中的REST进行同样的操作。我正在使用请求库,这就是我所做的:

代码语言:javascript
复制
import requests
from requests.auth import HTTPBasicAuth


USERNAME = "Administrator"

PASSWORD = "password"

response = requests.get("http://win-5a8pp4v402g/sharepoint_test/site_1/", auth=HTTPBasicAuth(USERNAME, PASSWORD))

print response.status_code

不过,我得到了401英镑。我不明白。我遗漏了什么?

注意:我跟随了本文http://tech.bool.se/using-python-to-request-data-from-sharepoint-via-rest/

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-02-01 23:43:35

您的SharePoint站点可能使用不同的身份验证方案。您可以通过检查Firebug或Chrome工具中的网络流量来检查这一点。

幸运的是,请求库支持许多身份验证选项:http://docs.python-requests.org/en/latest/user/authentication/

例如,我需要访问的一个网络使用NTLM身份验证。在安装请求-ntml插件之后,我能够使用类似于以下代码的代码访问站点:

代码语言:javascript
复制
import requests
from requests_ntlm import HttpNtlmAuth

requests.get("http://sharepoint-site.com", auth=HttpNtlmAuth('DOMAIN\\USERNAME','PASSWORD'))
票数 43
EN

Stack Overflow用户

发布于 2018-12-19 23:11:49

下面是Python2016RESTAPI调用创建站点的示例。

代码语言:javascript
复制
import requests,json,urllib
from requests_ntlm import HttpNtlmAuth

root_url = "https://sharepoint.mycompany.com"
headers = {'accept': "application/json;odata=verbose","content-type": "application/json;odata=verbose"}
##"DOMAIN\username",password 
auth = HttpNtlmAuth("MYCOMPANY"+"\\"+"UserName",'Password')


def getToken():
    contextinfo_api = root_url+"/_api/contextinfo"
    response = requests.post(contextinfo_api, auth=auth,headers=headers)
    response =  json.loads(response.text)
    digest_value = response['d']['GetContextWebInformation']['FormDigestValue']
    return digest_value

def createSite(title,url,desc):
    create_api = root_url+"/_api/web/webinfos/add"
    payload = {'parameters': {
            '__metadata':  {'type': 'SP.WebInfoCreationInformation' },
            'Url': url,
            'Title': title,
            'Description': desc,
            'Language':1033,
            'WebTemplate':'STS#0',
            'UseUniquePermissions':True}
        }
    response = requests.post(create_api, auth=auth,headers=headers,data=json.dumps(payload))
    return json.loads(response.text)

headers['X-RequestDigest']=getToken()
print createSite("Human Resources","hr","Sample Description")
票数 4
EN

Stack Overflow用户

发布于 2016-09-07 10:27:16

您还可以使用Office365-REST-Python-Client (“Office365& Microsoft for Python")或sharepoint (”模块和命令行实用程序以从SharePoint中获取数据“)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20945822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档