У меня есть url(/add_item)
, на который я отправляю данные методом POST
. После завершения задачи она будет перенаправлена на url2 (/show_items)
I с помощью команды curl (метод POST, а также --location используется для автоматического перенаправления). Ниже приведена команда
$ curl --verbose --location --request POST 'http://127.0.0.1:8000/add_item' \
--header 'Content-Type: application/json' \
--data-raw '{
"item" : "new"
}'
Вывод
Note: Unnecessary use of -X or --request, POST is already inferred.
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 8000 (#0)
> POST /add_item HTTP/1.1
> Host: 127.0.0.1:8000
> User-Agent: curl/7.64.1
> Accept: */*
> Content-Type: application/json
> Content-Length: 18
>
* upload completely sent off: 18 out of 18 bytes
< HTTP/1.1 302 Found
< Date: Wed, 25 Mar 2020 08:02:37 GMT
< Server: WSGIServer/0.2 CPython/3.7.3
< Content-Type: text/html; charset=utf-8
< Location: /show_items
< Content-Length: 0
< X-Content-Type-Options: nosniff
<
* Connection #0 to host 127.0.0.1 left intact
* Issue another request to this URL: 'http://127.0.0.1:8000/show_items'
* Switch from POST to GET
* Found bundle for host 127.0.0.1: 0x56410d38f180 [can pipeline]
* Could pipeline, but not asked to!
* Re-using existing connection! (#0) with host 127.0.0.1
* Connected to 127.0.0.1 (127.0.0.1) port 8000 (#0)
> POST /show_items HTTP/1.1
> Host: 127.0.0.1:8000
> User-Agent: curl/7.64.1
> Accept: */*
> Content-Type: application/json
>
< HTTP/1.1 500 Internal Server Error
< Date: Wed, 25 Mar 2020 08:02:37 GMT
< Server: WSGIServer/0.2 CPython/3.7.3
< Content-Type: text/html
< Content-Length: 99523
< Vary: Cookie
< X-Content-Type-Options: nosniff
<
<!DOCTYPE html>
<html lang="en">
<head>
<body>
....
</body>
</head>
</html>
Здесь я заметил, что
* Re-using existing connection! (#0) with host 127.0.0.1
* Connected to 127.0.0.1 (127.0.0.1) port 8000 (#0)
> POST /show_items HTTP/1.1
Так как для его < HTTP/1.1 302 Found
curl следует использовать метод GET вместо ПОСЛЕ. Но его использование POST. Как остановить это поведение.
Похоже, он пытается использовать GET
* Issue another request to this URL: 'http://127.0.0.1:8000/show_items'
* Switch from POST to GET
Но позже возвращается к POST
Как обеспечить использование GET