我正在尝试通过 PROC SOAP 使用 SAS (9.3) 更新 Sharepoint (2007) 列表(SAS 位于 Unix GRID 上)。共享点站点启用了基本身份验证(因为 PROC SOAP 无法通过 NTLM 进行身份验证)。
我可以使用 XML Libname 引擎成功从 Sharepoint 列表中提取数据,但无法通过 PROC SOAP XML 数据发出回 Sharepoint 列表 Web 服务。具体来说,我尝试通过以下方式添加和更新共享点列表中的项目http://[intranet_site]/sites/IT/_vti_bin/Lists.asmx
SAS 日志输出:
18399 %let RESPONSE=RESPONSE;
18400 proc soap in=REQUEST
18401 out=&RESPONSE
18402 url="http://[intranet_site]/sites/IT/_vti_bin/Lists.asmx"
18403 webusername="[username]"
18404 webpassword="[password]"
18405 webdomain="[domain]"
18406 SOAPACTION="http://schemas.microsoft.com/sharepoint/soap/UpdateListItems"
18407 ;
18408 run;
ERROR: org.springframework.ws.client.WebServiceTransportException: Unauthorized [401]
Run Code Online (Sandbox Code Playgroud)
我已经通过 SOAPUI 确认传递到 Lists.asmx Web 服务的 XML 是有效的(当通过 SOAPUI 手动执行时,我实际上可以按照 Sharepoint 中的预期创建和更新列表项。
正如错误明确指出的那样,由于某种原因,输入 PROC SOAP 的用户身份验证并未进入 Sharepoint(我在 …