【发布时间】:2021-05-07 16:19:27
【问题描述】:
我想用 python 编写一个 web 服务,它从另一个用 Java 编写的 web 服务获取数据。
我想从服务中获取数据的方法是 public List programsByIdList(List IdList):
DtoIdName 是一个类,有两个值; id(Long) 和 name(String)
这个 Web 服务是用 Java 编写的,所以 List 是 Java.util.List ...
当我在 python 中编写 web 服务时,它是这样的......
import requests
import json
from bs4 import BeautifulSoup as bs
import flaskfrom
flask import Flask, jsonify
from flask import make_response
from flask import requestimport xmltodict
TEST = 'http://192.166.5.0/YService/RadioService/'
app = flask.Flask(__name__)
app.config["DEBUG"] = True
headers = {
'Accept': 'application/xml',
}
#programsByIdList
@app.route('/programsByIdList', methods=['GET'])
def programsByIdList():
idList= [10262,10498]
arguments = {'arg0[]': idList}
print(arguments)
response = requests.get(TEST+'programsByIdList',headers=headers, params=arguments)
soapXML = response.content.decode("utf-8")
soapSoup =bs(soapXML, "xml")
programNames = soapSoup.find_all('name')
data = response
xpars = xmltodict.parse(data.text)
json1 = json.dumps(xpars,indent=4,ensure_ascii=False)
for ad in programNames:
print(ad.get_text())
return json1
@app.route('/', methods=['GET'])
def home():
return "<h1>Service</h1><p> Service methods.</p>"
print(programsByIdList())
app.run()
当我运行我的 python 代码时,它显示 { "soap:Envelope": { "@xmlns:soap": "http://schemas.xmlsoap.org/soap/envelope/", "soap:Body": { "soap:Fault": { "faultcode": "soap:Server", "faultstring": "调用公共抽象 java.util.List eradyo.akis.service.AkisService.programsBySezonIdList(java.util.List) 时参数类型不匹配) 带有参数 [10262]。” } } } }
我认为我对使用 java.List 参数编写的 python 服务感到困惑...有没有办法解决我的问题...如何将 Arraylist 传递给 python 请求..
非常感谢……
【问题讨论】:
-
能否请您复制/粘贴您的真实代码(我的意思是没有后期编辑)?
-
嗨,我在上面发布了我的python代码,我不明白是哪个代码...你的意思是我想要获取请求的java Web服务代码...
标签: python web arraylist service arguments