首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python3 zeep url给出401客户端错误: url未授权

python3 zeep url给出401客户端错误: url未授权
EN

Stack Overflow用户
提问于 2018-03-19 21:40:14
回答 1查看 1K关注 0票数 2

我的命令:python3 -mzeep https://pearson:m0bApP5@cms.powerschool.com/pearson-rest/services/PublicPortalServiceJSON?wsdl

我得到一个错误:requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://pearson:m0bApP5@cms.powerschool.com/pearson-rest/services/PublicPortalServiceJSON?wsdl

使用pearson和m0bApP5手动访问https://cms.powerschool.com/pearson-rest/services/PublicPortalServiceJSON?wsdl并进行身份验证是可行的,但为什么不能呢?

我也试过使用这段代码,但它也不起作用。

代码语言:javascript
复制
#!/usr/bin/env python3
from zeep import Client
from requests.auth import HTTPBasicAuth  # or HTTPDigestAuth, or OAuth1, etc.
from requests import Session
from zeep.transports import Transport
session = Session()
session.auth = HTTPBasicAuth("pearson","m0bApP5")
url = "https://cms.powerschool.com/pearson-rest/services/PublicPortalServiceJSON?wsdl"
stransport = Transport(session=session)
client = Client(url,transport=stransport)
client.wsdl.dump()
EN

回答 1

Stack Overflow用户

发布于 2021-05-07 00:48:48

您应该像这样使用HTTPDigestAuth:

代码语言:javascript
复制
session = requests.session()
session.auth = requests.auth.HTTPDigestAuth(api_username, api_password)
self.url = base_url + "pearson-rest/services/PublicPortalServiceJSON"
try:
    self.client = zeep.Client(
        wsdl=self.url + "?wsdl",
        transport=zeep.transports.Transport(session=session),
    )
except requests.exceptions.ConnectionError:
        raise APIException(f"Could not connect to {base_url}.")
    except requests.exceptions.HTTPError:
        raise APIException(
            f"Incorrect api credentials ({api_username}, {api_password})."
        )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49364403

复制
相关文章

相似问题

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