Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有zeep的python SOAP,requests.exception:403客户端错误_Python_Soap_Zeep - Fatal编程技术网

带有zeep的python SOAP,requests.exception:403客户端错误

带有zeep的python SOAP,requests.exception:403客户端错误,python,soap,zeep,Python,Soap,Zeep,我正在尝试使用zeep在python中创建一个SOAP客户机,到目前为止,我在尝试运行它时没有任何运气。我一直得到以下错误 Traceback (most recent call last): File "C:/Users/z905/PycharmProjects/Soap_Test/soap_test.py", line 14, in <module> client = Client(wsdl=client_location, transport=transport_w

我正在尝试使用
zeep
在python中创建一个SOAP客户机,到目前为止,我在尝试运行它时没有任何运气。我一直得到以下错误

Traceback (most recent call last):
  File "C:/Users/z905/PycharmProjects/Soap_Test/soap_test.py", line 14, in <module>
    client = Client(wsdl=client_location, transport=transport_with_basic_auth)
  File "C:\Users\z905\PycharmProjects\Soap_Test\venv\lib\site-packages\zeep\client.py", line 134, in __init__
    self.wsdl = Document(wsdl, self.transport, strict=strict)
  File "C:\Users\z905\PycharmProjects\Soap_Test\venv\lib\site-packages\zeep\wsdl\wsdl.py", line 81, in __init__
    root_definitions = Definition(self, document, self.location)
  File "C:\Users\z905\PycharmProjects\Soap_Test\venv\lib\site-packages\zeep\wsdl\wsdl.py", line 178, in __init__
    self.parse_imports(doc)
  File "C:\Users\z905\PycharmProjects\Soap_Test\venv\lib\site-packages\zeep\wsdl\wsdl.py", line 270, in parse_imports
    document = self.wsdl._get_xml_document(location)
  File "C:\Users\z905\PycharmProjects\Soap_Test\venv\lib\site-packages\zeep\wsdl\wsdl.py", line 140, in _get_xml_document
    location, self.transport, self.location, strict=self.strict)
  File "C:\Users\z905\PycharmProjects\Soap_Test\venv\lib\site-packages\zeep\loader.py", line 72, in load_external
    content = transport.load(url)
  File "C:\Users\z905\PycharmProjects\Soap_Test\venv\lib\site-packages\zeep\transports.py", line 110, in load
    content = self._load_remote_data(url)
  File "C:\Users\z905\PycharmProjects\Soap_Test\venv\lib\site-packages\zeep\transports.py", line 126, in _load_remote_data
    response.raise_for_status()
  File "C:\Users\z905\PycharmProjects\Soap_Test\venv\lib\site-packages\requests\models.py", line 935, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden (Forbidden port) for url: http://url:7104
回溯(最近一次呼叫最后一次):
文件“C:/Users/z905/PycharmProjects/Soap_Test/Soap_Test.py”,第14行,在
client=client(wsdl=client\u location,transport=transport\u with\u basic\u auth)
文件“C:\Users\z905\PycharmProjects\Soap\u Test\venv\lib\site packages\zeep\client.py”,第134行,在u init中__
self.wsdl=Document(wsdl,self.transport,strict=strict)
文件“C:\Users\z905\PycharmProjects\Soap\u Test\venv\lib\site packages\zeep\wsdl\wsdl.py”,第81行,在u init中__
root_definitions=定义(self、document、self.location)
文件“C:\Users\z905\PycharmProjects\Soap\u Test\venv\lib\site packages\zeep\wsdl\wsdl.py”,第178行,在u init中__
self.parse_导入(doc)
文件“C:\Users\z905\PycharmProjects\Soap\u Test\venv\lib\site packages\zeep\wsdl\wsdl.py”,第270行,在parse\u imports中
document=self.wsdl.\u获取\u xml\u文档(位置)
文件“C:\Users\z905\PycharmProjects\Soap\u Test\venv\lib\site packages\zeep\wsdl\wsdl.py”,第140行,在xml文档中
位置,self.transport,self.location,strict=self.strict)
文件“C:\Users\z905\PycharmProjects\Soap\u Test\venv\lib\site packages\zeep\loader.py”,第72行,在load\u external中
content=transport.load(url)
文件“C:\Users\z905\PycharmProjects\Soap\u Test\venv\lib\site packages\zeep\transports.py”,第110行,已加载
内容=自身。\加载\远程\数据(url)
文件“C:\Users\z905\PycharmProjects\Soap\u Test\venv\lib\site packages\zeep\transports.py”,第126行,在远程加载数据中
响应。针对_状态()提出_
文件“C:\Users\z905\PycharmProjects\Soap_Test\venv\lib\site packages\requests\models.py”,第935行,处于raise_for_状态
引发HTTPError(http\u error\u msg,response=self)
requests.exceptions.HTTPError:403客户端错误:url的禁用(禁用端口):http://url:7104
我试过这个程序,有没有基本的身份验证

from zeep import Client
from requests import Session
from requests.auth import HTTPBasicAuth
from zeep.transports import Transport


client_location = "file://C:/<path-to-local-file>"
loc = "<url-to-wsdl>"

session = Session()
session.auth = HTTPBasicAuth('usrname', 'pass')
transport_with_basic_auth = Transport(session=session)

client = Client(wsdl=client_location, transport=transport_with_basic_auth)
来自zeep导入客户端的

来自导入会话的请求
从requests.auth导入HTTPBasicAuth
从zeep.transports进口运输
client_location=“file://C:/”
loc=“”
会话=会话()
session.auth=HTTPBasicAuth('usrname','pass')
使用基本身份验证=传输的传输(会话=会话)
client=client(wsdl=client\u location,transport=transport\u with\u basic\u auth)
和没有基本身份验证的版本

from zeep import Client
from zeep.wsse.username import UsernameToken


client_location = "file://C:/<path-to-local-file>"
loc = "<url-to-wsdl>"



client = Client(wsdl=loc, wsse=UsernameToken(usr, password, use_digest=True))
来自zeep导入客户端的

从zeep.wsse.username导入UsernameToken
client_location=“file://C:/”
loc=“”
client=client(wsdl=loc,wsse=UsernameToken(usr,password,use_digest=True))

我通过以下操作解决了这个问题。该问题是由某些防火墙问题和代理不工作引起的

import requests
session = requests.session()
session.trust_env = False

transport = Transport(session=session)
client = Client(wsdl=client_location, wsse=UsernameToken(usr, password, use_digest=True), transport=transport)

正在打开<代码>http://url:7104在浏览器中是否成功?如果不是的话,问题出在python之外。我可以在浏览器中打开该URL,没有问题。多么简单的
客户端('http://url:7104)
?跟踪上的密钥似乎是“禁止端口”,这是一个网络问题。它执行相同的操作,返回相同的错误消息。