将C# SharePoint POST请求代码转换为Python的技术咨询
转换后的Python代码
import requests from urllib.parse import urljoin # 替换为实际的SharePoint站点地址和认证Cookie sharepoint_site_url = "https://your-sharepoint-site-url" # 这里对应C#中cred.GetAuthenticationCookie(siteUri)的返回值,需自行实现或传入已获取的认证Cookie字符串 auth_cookie_str = "your-authentication-cookie-string" # 拼接API请求地址 api_base_url = urljoin(sharepoint_site_url, "_api") digest_request_url = urljoin(api_base_url, "contextinfo") # 设置请求头 request_headers = { "Accept": "application/json" } # 解析Cookie字符串为字典格式 cookies = {} for cookie_segment in auth_cookie_str.split(';'): if '=' in cookie_segment: key, value = cookie_segment.strip().split('=', 1) cookies[key] = value # 发送POST请求并处理响应 response = requests.post(digest_request_url, headers=request_headers, cookies=cookies) response.raise_for_status() # 若请求失败直接抛出异常 digest_data = response.json()
Python中Cookie的使用及请求执行说明
Cookie处理方式
- 手动构造Cookie字典:将认证返回的Cookie字符串拆分为键值对,传入请求的
cookies参数,适合单次请求的Cookie传递。 - Session自动管理Cookie:如果需要在多轮请求中保持会话(比如后续操作SharePoint其他接口),可以用
requests.Session(),它会自动保存和复用响应中的Cookie:session = requests.Session() session.cookies.update(cookies) # 后续请求直接用session发送,无需重复传Cookie response = session.post(digest_request_url, headers=request_headers) - CookieJar对象:用于复杂Cookie场景(比如需指定域名、路径等属性),可以通过
http.cookiejar.CookieJar创建,requests会自动兼容该类型的Cookie参数。
请求执行要点
- POST请求构造:使用
requests.post()方法,传入目标URL,按需添加headers、cookies、data或json参数(本次请求无需请求体,仅需头信息和Cookie)。 - 响应处理:
response.json():将JSON格式的响应体转换为Python字典,对应C#中的dynamic类型。response.raise_for_status():检查请求状态码,若状态码不在200-299范围内,直接抛出异常,便于快速定位请求问题。- 通过
response.cookies可获取响应返回的Cookie,用于后续请求的会话维持。
内容的提问来源于stack exchange,提问作者pulseozara
相关产品推荐
相关产品推荐

