python - 无法在代理后面调用 SOAP 请求(不支持代理方案无)
问题描述
我无法使用 WinPython/VSCode 在 Windows Server 2016 环境中从简单的 Python 脚本调用 SOAP 请求:
from requests import Session
from zeep import Client
from zeep.transports import Transport
wsdl = "http://www.dneonline.com/calculator.asmx?wsdl"
#wsdl = "calculator.xml"
client = Client(wsdl=wsdl)
request_data={'intA' : 1 ,
'intB' : 2}
response=client.service.Add(**request_data)
print("response: " + response)
我得到的输出:
Traceback (most recent call last):
File ".\zeeptest.py", line 31, in <module>
client = Client(wsdl=wsdl)
File "E:\Projects\test\zeeptest\zeeptest\lib\site-packages\zeep\client.py", line 73, in __init__
self.wsdl = Document(wsdl, self.transport, settings=self.settings)
File "E:\Projects\test\zeeptest\zeeptest\lib\site-packages\zeep\wsdl\wsdl.py", line 92, in __init__
self.load(location)
File "E:\Projects\test\zeeptest\zeeptest\lib\site-packages\zeep\wsdl\wsdl.py", line 95, in load
document = self._get_xml_document(location)
File "E:\Projects\test\zeeptest\zeeptest\lib\site-packages\zeep\wsdl\wsdl.py", line 155, in _get_xml_document
return load_external(
File "E:\Projects\test\zeeptest\zeeptest\lib\site-packages\zeep\loader.py", line 79, in load_external
content = transport.load(url)
File "E:\Projects\test\zeeptest\zeeptest\lib\site-packages\zeep\transports.py", line 122, in load
content = self._load_remote_data(url)
File "E:\Projects\test\zeeptest\zeeptest\lib\site-packages\zeep\transports.py", line 134, in _load_remote_data
response = self.session.get(url, timeout=self.load_timeout)
File "E:\Projects\test\zeeptest\zeeptest\lib\site-packages\requests\sessions.py", line 555, in get
return self.request('GET', url, **kwargs)
File "E:\Projects\test\zeeptest\zeeptest\lib\site-packages\requests\sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "E:\Projects\test\zeeptest\zeeptest\lib\site-packages\requests\sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "E:\Projects\test\zeeptest\zeeptest\lib\site-packages\requests\adapters.py", line 414, in send
raise InvalidURL(e, request=request)
requests.exceptions.InvalidURL: Not supported proxy scheme None
我尝试使用以下命令手动设置代理但没有成功:
set http_proxy="http://<ip>:<port>"
set https_proxy="http://<ip>:<port>"
解决方案
我通过以管理员用户身份在 Powershell shell 中发出以下命令解决了我的问题:
netsh winhttp set proxy <ip>:<port>
推荐阅读
- swift - Watchkit 下一页防止按钮执行转场。
- c# - 在 UWP 中对多行文本框使用 SHIFT + ENTER
- xamarin - AVCaptureMetadataOutputObjectsDelegate、DidOutputMetadataObjects 并不总是被调用
- javascript - 浏览器关闭时,反应网络应用程序中的计时器在移动设备中不起作用
- coldfusion - 在 Lucee 中产生 perlin 噪声的最简单方法是什么?
- struct - structAppend 与重复
- c# - 如何在 DotRas C# 中删除 VPN 连接 (.pbk)?
- java - junit 测试中的 JPA 存储库为空
- java - 存储由 Handler 运行的递归 Runnable 的运行计数的最佳方法?
- ios - SVG 使用和 IE/Safari iOS