首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python的zeep模块如何在API管理器上工作?

Python的zeep模块如何在API管理器上工作?
EN

Stack Overflow用户
提问于 2020-01-07 15:51:56
回答 1查看 161关注 0票数 0

我在SOAP服务上使用过zeep,它工作得很好。然而,当这个服务被放在Gravitee API管理器后面时,我无法让它继续工作,只能得到一个404响应。

下面是我的代码:

代码语言:javascript
复制
from zeep import Client, Settings
import base64,sys, logging, traceback
from requests import Session
from zeep.transports import Transport
import requests
from lxml import etree

wsdl= 'https://link_to_service_on_gravitee'

session = Session()
session.verify = False
session.headers['Api-Key']= 'xxxxx'

transport = Transport(session=session)
settings = Settings(raw_response=True, strict=False, xml_huge_tree=True)
client = Client(wsdl, transport=transport, settings=settings)

data = []
data.append(
    {'ServerProcessId': 'GL07',
    'OrderNumber': 1}
     )

cdata = []
cdata.append(
    {'Username': 'xxx',
     'Client': 'yyy',
     'Password': 'zzz'}
     )  

node = client.create_message(client.service, 'GetResult',input=data, credentials=cdata)
print('*** SOAP Message')
print(etree.tostring(node))
print('*** End SOAP Message')


response = requests.Response()
try:     
   response = client.service.GetResult(input=data, credentials=cdata)
   print(response)
except Exception as e:
   print(response.headers)
   logging.error(traceback.format_exc())

当我在SOAPUI中测试由Python (etree.tostring(etree.tostring))生成的消息时,它可以正常工作。此外,如果我修改api- key,我会得到一个关于身份验证问题的错误,因此Gravitee似乎接受了我代码中的密钥。但是,使用正确的api-key,我得到的响应总是404。

当我将wsdl下载到本地文件时,它就可以工作了,但是我不想对每个wsdl都这样做。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-01-25 02:21:58

从Gravitee获得404有多种原因:*你创建了API吗*你为这个API创建了一个简单的计划*你把API部署到网关了吗?

一旦完成了所有这些步骤,您就可以使用您的API了。

希望能有所帮助,

致以敬意,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59624264

复制
相关文章

相似问题

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