gpt4 book ai didi

python - 通过 python suds 在 Web 服务链接中调用 SAS 存储过程

转载 作者:行者123 更新时间:2023-11-30 22:59:29 24 4
gpt4 key购买 nike

我已将 sas 存储过程部署为 Web 服务。我想查看 python 中存储过程的输出。如果有人能帮助我,我将非常感激。

这是我使用的过程 -

创建的网络服务是 -'https://sasdev.wdw.disney.com:443/SASBIWS/services/abcweb.wsdl '

我认为,它将存储过程存储在一个函数中,这里是 abc_web()

我在这里使用的Python代码是 -

import urllib
import logging
from suds.client import Client
#from suds.wsse import *

import requests

import suds_requests


url = 'https://sasdev.wdw.disney.com:443/SASBIWS/services/abcweb.wsdl'
namespace = 'https://sasdev.wdw.disney.com:443/SASBIWS/services'

client = Client(url)
client.service.abc_web()

但它收到错误:


ERROR:suds.client:<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:ns0="http://tempuri.org/abcweb" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<ns1:Body>
<ns0:abc_web/>
</ns1:Body>
</SOAP-ENV:Envelope>

WebFault: Server raised fault: 'A 'Client Authentication' type of exception occurred during execution of 'abcweb' service. The exception follows: No security context is available.'

最佳答案

错误代码 1000 表示:指定无效的用户名或密码(客户端应用程序可能需要重新提示用户输入凭据)。来源:http://support.sas.com/documentation/cdl/en/wbsvcdg/61496/HTML/default/viewer.htm#a003275627.htm

首先,看看您是否可以在 SoapUI 中设置此 WS,并进行正确的身份验证。请参见下图。在 SoapUI 中,单击您的 SOAP 请求,然后转到下面的属性,您需要在其中输入您的域\用户 ID 以及密码。 SAS 支持加密,但假设它启用了基本身份验证,您可以将其保留为纯文本。

您应该能够在 SoapUI 中运行 SOAP 请求。

实际上,它将向标准 SOAP 信封添加一个带有以下几行的 HEAD 标记。当您在 SOAP UI 中打开 SOAP Log 时可以看到:

<soapenv:Header><wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
xmlns:wsu=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd>
<wsse:UsernameToken wsu:Id="">
<wsse:Username>domain\username</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Password</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"></wsse:Nonce>
<wsu:Created>2014-10-22T15:10:21.866Z</wsu:Created></wsse:UsernameToken></wsse:Security></soapenv:Header>

在这里让我知道你过得怎么样。很抱歉,我可以直接帮助您使用 Python,但如果您让它在 SoapUI 中工作,您就可以比较 SoapIU 和 Python 客户端之间的 SOAP 请求,看看 Python 出了什么问题。

附注如果您不喜欢在 SoapUI 中输入纯文本密码,可以使用 PROC PWENCODE 先对密码进行加密,然后将其复制粘贴到 SoapUI 中。

enter image description here

关于python - 通过 python suds 在 Web 服务链接中调用 SAS 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35737557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com