SIP

Giả lập phản hồi 400 Bad Request

The request could not be understood due to malformed syntax. The client should not repeat the request without modifications.

Xem tài liệu tham khảo đầy đủ →

1 Phản hồi HTTP

Phản hồi HTTP
HTTP/1.1 400 Bad Request
Content-Type: application/json
Date: Tue, 25 Feb 2026 12:00:00 GMT
Content-Length: 59

{
  "error": "bad_request",
  "message": "Invalid request body"
}

2 Kiểm tra với curl

terminal
curl -i https://httpbin.org/status/400

3 Trả về 400 Bad Request trong Framework của bạn

django
from django.http import JsonResponse


def my_view(request):
    return JsonResponse(
        {"error": "bad_request", "message": "Invalid request body"},
        status=400,
    )
flask
from flask import Flask, jsonify

app = Flask(__name__)


@app.route("/endpoint")
def my_endpoint():
    return jsonify({"error": "bad_request", "message": "Invalid request body"}), 400
fastapi
from fastapi import FastAPI
from fastapi.responses import JSONResponse

app = FastAPI()


@app.get("/endpoint")
def my_endpoint():
    return JSONResponse(
        content={"error": "bad_request", "message": "Invalid request body"},
        status_code=400,
    )
express.js
// Express.js
app.get('/endpoint', (req, res) => {
  res.status(400).json({"error": "bad_request", "message": "Invalid request body"});
});
spring boot
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Map;

@RestController
public class MyController {

    @GetMapping("/endpoint")
    public ResponseEntity<Map<String, Object>> myEndpoint() {
        return ResponseEntity
            .status(400)
            .body(Map.of("error", "bad_request",
                         "message", "Bad Request"));
    }
}
go net/http
package main

import (
    "encoding/json"
    "net/http"
)

func myHandler(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    w.WriteHeader(400)
    json.NewEncoder(w).Encode(map[string]string{
        "error":   "bad_request",
        "message": "Bad Request",
    })
}
ruby on rails
class MyController < ApplicationController
  def my_action
    render json: {"error": "bad_request", "message": "Invalid request body"},
           status: :bad_request
  end
end
asp.net core
// ASP.NET Core Minimal API
app.MapGet("/endpoint", () =>
    Results.Json(
        new { error = "bad_request", message = "Bad Request" },
        statusCode: 400
    )
);

Thêm trang giả lập SIP