我尝试使用Sharepoint Rest API从SAP服务器访问Sharepoint,但即使Sharpoint用户拥有所有所需的授权,我也会收到401错误:
使用以下abap代码:
lv_service = 'MYURL/_api/web/lists/GetByTitle(''Ressource'')/items'.
cl_http_client=>create_by_url(
EXPORTING
url = lv_service
IMPORTING
client = lo_http_client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4 ).
lo_http_client->authenticate(
EXPORTING
username = 'usr' " ABAP System, User Logon Name"
password = 'password' ).
lo_http_client->send(
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2 ).
lo_http_client->receive(
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3 ).
在接收方法中,I Get 401错误:
lv_result = lo_http_client->response->get_data( ).
如何解决此问题?
1条答案
按热度按时间tp5buhyn1#
检查http客户端是否正确设置为PUT或GET。
我认为这里需要GET。
然后下一个问题是你是否在sharepoint上生成了用于外部访问的链接。在浏览器中打开dev模式测试该url,这样你就可以看到发生了什么。一旦你对链接访问中没有重定向等内容感到满意,就用更多的调试再试一次。
在代码中,可以在尝试添加身份验证头之后调试lo_http_client。
您也可以调试所有信息返回Philipp建议。
您还可以检查SMICM日志以查看是否记录了任何http错误。是否记录了SSL错误?
我会先把文件放在一个非认证的公共区域。当作品把文件放在一个非公共的文件夹中,然后再尝试认证。
你可以使用众多免费测试工具中的一个来构建基本的URL调用。在线工具,浏览器插件,下载应用程序。无论什么。确保你知道什么流量工作。在ABAP中原型开发是缓慢的...
我也使用匿名SSL进行此类调用。
如果你不知道如何分析,这里有太多的事情可能会出错。这可能需要一段时间。
其他一些想法......与401错误无关,但可能会派上用场,比如将接受的内容类型或调用方法类型设置为GET