我想知道为什么这里有200个状态码。我正在运行一个flask应用程序,当请求一个已处理的endpoint而不是一个已处理的方法时,会得到一个200状态代码作为响应。
这是最小的,可复制的代码。app.py
file:
from flask import Flask, request, abort, jsonify
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import Column, String, Integer
def create_app():
db = SQLAlchemy()
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "postgresql://postgres:postgres@localhost:5432/so_question"
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db = SQLAlchemy()
db.app = app
db.init_app(app)
db.create_all()
class Book(db.Model):
__tablename__ = 'books'
id = Column(Integer, primary_key=True)
def __init__(self, id):
self.id = id
def format(self):
return {
'id': self.id,
}
@app.route('/books')
def get_books():
books = Book.query.order_by(Book.id).all()
return jsonify({
'books': [book.format() for book in books],
})
@app.route('/books/<int:book_id>', methods=["PATCH"])
def update_title(book_id):
return jsonify({
'success': True
})
@app.errorhandler(405)
def not_allowed(error):
return jsonify({
"success": False,
})
return app
然后我运行FLASK_APP=app.py烧瓶运行
。我提出了以下请求:curl-X GEThttp://127.0.0.1:5000/books
,结果如下:
{
"books": [
{
"id": 1
},
{
"id": 2
}
]
}
但我不明白的是:我没有处理对/书籍的POST请求/
我很确定答案与这篇文章有关,但我想问的是为什么会发生这种情况,而不是如何修复,或者这个问题的最佳状态代码应该是什么。
没有状态代码的返回将默认为code200
def not_allowed(error):
return jsonify({
"success": False,
})
此函数应返回所需的状态代码。
返回jsonify({“success”:False}),405
见先前回答的问题。
目前,我正在尝试使用Flux通过WebClient从服务器端获取消息。我想检查我是否可以处理非2xx HTTP状态情况的异常。在接收消息期间,我会停止服务器。在这种情况下,我希望通过我的自定义异常获得500个状态代码,但它会通过我的自定义异常返回200个状态代码。 您可以在下面找到输出日志(粗体部分很重要) 以下是客户端代码: 在这种情况下,我错过了什么?
我正在使用 webClient 调用调用服务 1,该服务 1 调用服务 2,然后服务 2 从数据库中获取数据并返回它们。问题:我有 onStatus 来捕获错误的响应,因此响应具有 400 或 500 个状态代码。代码示例: 在一些边缘情况下,响应带有200个状态代码,响应体有失败消息和失败原因。那么我如何检索它,然后用该失败消息抛出异常(在其他服务返回的响应对象中)。因为它试图映射并抛出错误。目
问题内容: 我有一台服务器,从同一URL返回HTTP状态代码200、201和202。在Chrome浏览器中,我已经通过“网络”调试面板确认了状态代码是否符合我的预期(即200、201或202)。我依靠该状态码来确定下一步。 我希望jQuery(1.5.2版)AJAX的回调请求设置为服务器发送的状态代码。但是,即使服务器发送的代码是201或202,状态代码也始终为200。 换句话说,无论服务器发送什
问题内容: 我正在使用ionic框架和angularjs,我使用chrome来查看日志,但是在这里,我正在执行一个登录页面,我试图发布用户输入的数据来提供服务,但是却出现了此类错误。 而且这是 阅读一些博客后的下一个错误,我认为这是一个CORS扩展,从该扩展允许我尝试过ajax请求,但是我无法找到为什么会出现这两个错误。这是我的代码 https://plnkr.co/edit/Dz0aFsLqoQ
我想将表单数据发送到服务器。我正在使用volly库来实现这一点,但下面的代码显示了以下错误。 意外响应代码405 com。Android截击服务器错误 我的代码是: **logcat看起来像这样**
Im在使用@RequestMapping(method=RequestMethod.Post)注释向controller类添加方法时遇到了一个问题。问题是我什么时候添加这个方法并启动应用程序。应用程序无法加载资源(css、JS等)。在浏览器上,我得到:无法加载资源:服务器以405(方法不允许)的状态响应,在运行日志上,我得到以下消息:org.springframework.web.servlet.