Python FlaskAPI返回错误的JSON或空白列表
我正在使用的Flask应用程序有问题,每当我从邮递员那里发送Python FlaskAPI返回错误的JSON或空白列表,python,flask,Python,Flask,我正在使用的Flask应用程序有问题,每当我从邮递员那里发送POST请求时,我都会收到一个空白列表 这是我正在使用的代码: 1 @app.route('/twist', methods=['POST']) 2 def twist(): 3 try: 4 session = Session(request.json.get('url'), nameserver=NAMESERVER) 5 session.scan() 6 ses
POST
请求时,我都会收到一个空白列表
这是我正在使用的代码:
1 @app.route('/twist', methods=['POST'])
2 def twist():
3 try:
4 session = Session(request.json.get('url'), nameserver=NAMESERVER)
5 session.scan()
6 sessions.append(session)
7 sessionUrl = session.status()
8 urlId = sessionUrl['id']
9 for s in sessions:
10 if s.id == urlId:
11 return jsonify(s.domains()), 201
12 else:
13 return return jsonify({'message': 'Scan session not found'}), 404
14 except Exception as err:
15 return jsonify({'message': 'Invalid domain name'}), 400
如果我去掉第10行,我在第一次尝试时确实会得到一个有效的响应,但是如果我用其他URL发送第二个请求,我会得到与第一个请求相同的JSON
我使用的是我的基本代码,我没有使用原始API,因为我需要它只处理一个请求
编辑:
如果我像这样将函数一分为二:
@app.route('/twist', methods=['POST'])
def twist():
try:
session = Session(request.json.get('url'), nameserver=NAMESERVER)
session.scan()
sessions.append(session)
sessionUrl = session.status()
urlId = sessionUrl['id']
return jsonify(urlId), 201
except Exception as err:
return jsonify({'message': 'Invalid domain name'}), 400
@app.route('/twist/<sid>/domains')
def api_domains(sid):
for s in sessions:
if s.id == sid:
return jsonify(s.domains())
return jsonify({'message': 'Scan session not found'}), 404
@app.route('/twist',methods=['POST'])
def twist():
尝试:
session=session(request.json.get('url'),nameserver=nameserver)
session.scan()
sessions.append(会话)
sessionUrl=session.status()
urlId=sessionUrl['id']
返回jsonify(urlId),201
除异常作为错误外:
返回jsonify({'message':'Invalid domain name}),400
@app.route(“/twist//domains”)
def api_域(sid):
对于参加会议的学员:
如果s.id==sid:
返回jsonify(s.domains())
返回jsonify({'message':'Scan session not found'}),404
我使用
urlId
作为sid
发出两个单独的请求,它就像一个符咒一样工作。您想在第一次找到的会话上返回
?如果没有会话与该条件匹配,会发生什么情况?它应该返回一个带有URL可能变体的字典,即:URL=google.com应该返回{'original':'google.com','1':'go0gle.com','2':'g0ogle.com','3':'googgl3.com',等等。}你可以看到这个的在线版本,但你没有回答我的问题。对不起,.domains()
根据存储在会话中的会话生成信息,它应该返回由.domains()
生成的信息,如果没有会话与条件匹配,它应该返回{'message':'Scan session not found'},404,似乎我忘了在第12行和第13行写这一行,现在您的代码将在任何情况下的第一次迭代中返回。名单上的其他会议将不予考虑。