我想使用flask python获取监视器服务的响应HTTP status_code。
我的代码:
from flask import Flask, request, url_for, redirect, render_template, flash, Response, abort
import requests
res = requests.get('https://192.168.1.100:8000/token?api=API',verify=False)
app = Flask(__name__)
print(res.url) # your.domain/test/3/3
print(res.status_code) # 200
@app.route('/services')
def check_services():
if request.method == "GET" or request.method == "POST":
if res.status_code == '201':
result = 'Sucess HTTP.Status_code 201 - Service TOKEN is working fine [OK]'
return render_template('services.html'), 201
# result = '401 -- Service TOKEN is working fine - parameter is not correct'
else:
# abort(401)
return render_template('services401.html'),401
但是我的代码无法正常工作。
我的预期结果,它将由单独的HTTP状态代码返回:201或401或500,无论我在if
条件下定义了什么。
感谢任何帮助!
答案 0 :(得分:1)
状态码是int
,而不是str
。因此,请检查201
而不是'201'
。
您的代码应为:
if request.method == "GET" or request.method == "POST":
if res.status_code == 201:
# do what you want here
有关详情,请参见下文。
>>> import requests
>>> r = requests.get('https://httpbin.org/get')
>>> r.status_code
200
>>> type(r.status_code)
<class 'int'>