400 bad request: the browser or proxy sent a request that this server could not understand.

错误类型

[POST]>400 Bad Request: The browser (or proxy) sent a request that this server could not understand.

400 (错误请求) 服务器不理解请求的语法。

使用场景flask

后台报400错误。400错误表示 由于语法格式有误,服务器无法理解此请求。
但后台的接口确实可以进行post请求。之后发现原因是当flask的request.form无法获取到对应的参数时,就会报400错误。
使用post请求时, 若是参数为json数据, request。

更正总结:

json数据不能用表单接收, 表单最好也不要接收json数据

Flask 中接收与发送表单方式

from flask import Flask,render_template,request @app.route('/login',methods=['GET','POST']) def login(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] print username,password return render_template('login.html',method=request.method)

Flask 中接收与发送json 方式详解

(转)https://blog.csdn.net/gymaisyl/article/details/86629874

1、利用flask的request.form.get()方法接收

from flask import Flask from flask import jsonify from flask import request import json @app.route("/login", methods=['POST']) def login(): data_ = request.form.get('data') data = json.loads(data) username = data['username'] password = data['password'] return jsonify({"login": Login.login(username, password)}) # 返回布尔值

2、 利用flask的request.get_data()方法接收

from flask import Flask from flask import jsonify from flask import request import json @app.route("/flask/login", methods=['POST']) def login(): data = request.get_data() data = json.loads(data) username = data['username'] password = data['password'] return jsonify({"login": Login.login(username, password)}) # 返回布尔值

3、利用flask的request.get_json()方法接收

from flask import Flask from flask import jsonify from flask import request @app.route("/flask/login", methods=['POST']) def login(): data = request.get_json() username = data['username'] password = data['password'] return jsonify({"login": Login.login(username, password)}) # 返回布尔值

Methods to fix a 400 Bad Request error

The 400 Bad Request error is an HTTP status code that means that the request you sent to the website server, often something simple like a request to load a web page, was somehow incorrect or corrupted and the server couldn't understand it.

The 400 Bad Request error is often caused by entering or pasting the wrong URL in the address window but there are some other relatively common causes as well.

400 Bad Request errors, like all errors of this type, could be seen in any operating system and in any browser.

400 Bad Request Errors

400 Bad Request errors appear differently on different websites, so you may see something from the short list below instead of just 400 or another simple variant like that:

  • 400 Bad Request
  • Bad Request. Your browser sent a request that this server could not understand.
  • Bad Request - Invalid URL
  • HTTP Error 400 - Bad Request
  • Bad Request: Error 400
  • HTTP Error 400. The request hostname is invalid.
  • 400 - Bad request. The request could not be understood by the server due to malformed syntax. The client should not repeat the request without modifications.

The 400 Bad Request error displays inside the internet web browser window, just as web pages do.

How to Fix the 400 Bad Request Error

  1. Check for errors in the URL. The most common reason for a 400 Bad Request error is because the URL was typed wrong or the link that was clicked on points to a malformed URL with a specific kind of mistake in it, like a syntax problem.

    This is most likely the problem if you get a 400 Bad Request error. Specifically, check for extra, typically non-allowed, characters in the URL like a percentage character. While there are perfectly valid uses for something like a % character, you won't often find one in a standard URL.

  2. Clear your browser's cookies, especially if you're getting a Bad Request error with a Google service. Many sites report a 400 error when a cookie it's reading is corrupt or too old.

  3. Clear your DNS cache, which should fix the 400 Bad Request error if it's being caused by outdated DNS records that your computer is storing. Do this in Windows by executing this command from a Command Prompt window:

    ipconfig /flushdns

    This is not the same as clearing your browser's cache.

  4. Clear your browser's cache. A cached but corrupt copy of the web page you're trying to access could be the root of the problem that's displaying the 400 error. Clearing your cache is unlikely the fix for the majority of 400 bad request issues, but it's quick and easy and worth trying.

  5. While this is not a common fix, try troubleshooting the problem as a 504 Gateway Timeout error instead, even though the problem is being reported as a 400 Bad Request.

    In some relatively rare situations, two servers may take too long to communicate (a gateway timeout issue) but will incorrectly, or at least unconstructively, report the problem to you as a 400 Bad Request.

  6. If you're uploading a file to the website when you see the error, chances are the 400 Bad Request error is due to the file being too large, and so the server rejects it.

    If the site permits it, compress the file to a ZIP file and then upload that instead.

  7. If the 400 error is happening on nearly every website you visit, the problem most likely lies with your computer or internet connection. Choose an internet speed test to run, and then check with your ISP to make sure everything is configured correctly.

  8. Contact the website directly that hosts the page. It's possible that the 400 Bad Request error actually isn't anything wrong on your end but is instead something they need to fix, in which case letting them know about it would be very helpful.

    Most sites have social network contacts and sometimes even telephone numbers and email addresses.

    If an entire site is down with a 400 Bad Request error, searching Twitter for #websitedown is often helpful, like #facebookdown or #gmaildown. It certainly won't contribute anything to fixing the issue, but at least you'll know you're not alone!

  9. If nothing above has worked, and you're sure the problem isn't with your computer, you're left with just checking back later. Since the problem isn't yours to fix, revisit the page or site regularly until it's back up.

More Ways You Might See a 400 Error

In Internet Explorer, The webpage cannot be found message indicates a 400 Bad Request error. The IE title bar will say HTTP 400 Bad Request or something very similar to that.

Windows Update can also report HTTP 400 errors but they display as error code 0x80244016 or with the message WU_E_PT_HTTP_STATUS_BAD_REQUEST.

A 400 error that's reported for a link within a Microsoft Office application will often appear as a The remote server returned an error: (400) Bad Request. message within a small pop-up window.

Web servers running Microsoft IIS often give more specific information about the cause of a 400 Bad Request error by suffixing a number after the 400, as in HTTP Error 400.1 - Bad Request, which means Invalid Destination Header.

Here's a complete list:

Microsoft IIS 400 Error Codes
400.1 Invalid Destination Header
400.2 Invalid Depth Header
400.3 Invalid If Header
400.4 Invalid Overwrite Header
400.5 Invalid Translate Header
400.6 Invalid Request Body
400.7 Invalid Content Length
400.8 Invalid Timeout
400.9 Invalid Lock Token

Errors Like 400 Bad Request

A number of other browser errors are also client-side errors and so are at least somewhat related to the 400 Bad Request error. Some include 401 Unauthorized, 403 Forbidden, 404 Not Found, and 408 Request Timeout.

Server-side HTTP status codes also exist and always start with 5 instead of 4. You can see all of them in our HTTP Status Code Errors list.

FAQ

  • What are 500 code errors?

    The 500 Internal Server Error is a general HTTP status code that means there's something wrong with the website's server. Try clearing the cache and deleting any cookies from the site.

  • How do I fix error 400 on my smart TV?

    If you see error 400 while watching online videos on your smart TV, first try reloading the video, then clear the app cache in your TV's settings. If you're still having trouble, log out and log back into the streaming app, then restart your TV.

Thanks for letting us know!

How do you fix your browser sent a request that this server could not understand?

This issue can be caused by corrupted cookies. Clear the Cache and remove the Cookies for websites that cause problems via the "3-bar" Firefox menu button (Options/Preferences). If clearing cookies didn't help then it is possible that the cookies.

What does bad request your browser sent a request that this server could not understand size of a request header field exceeds server limit?

This issue can be caused by corrupted cookies. Clear the cache and remove the cookies from websites that cause problems via the "3-bar" Firefox menu button (Options/Preferences). "Clear the cache: Options/Preferences -> Privacy & Security -> Cached Web Content: "Clear Now"

What is request Get_json?

Request. get_json (force=False, silent=False, cache=True)[source] Parses the incoming JSON request data and returns it. By default this function will return None if the mimetype is not application/json but this can be overridden by the force parameter.

How do you request a body in flask?

Parse it in Flask with request. get_json() ..
form['name'] : use indexing if you know the key exists..
form. get('name') : use get if the key might not exist..
form. getlist('name') : use getlist if the key is sent multiple times and you want a list of values. get only returns the first value..