Форум сайта python.su
На вебсервере Apache запускаю .py скрипты через ExecCGI.
хочу послать на свой скрипт json массив например:
curl \
–request POST \
–header “Content-Type: application/json” \
–header “X-Marvin-Status: depressed” \
–data ‘{“name”: “Deep Thought”, “answer”: 42}’ \
https://test.com/1.py
Вопрос, как мне получить данные из –data в моем скрипте???????
пробовал cgi.FieldStorage() но это работает только с обычными полями post формы..
подскажите пжл!
Офлайн
Просто тестовый скрипт напиши, положи его на сервере и пусть он выводит всё из stdin.
#!/usr/bin/env python3
import sys
print('Content-type: text/html')
print()
print(sys.stdin.read())
[guest@localhost cgi-bin]$ pwd
/var/www/cgi-bin
[guest@localhost cgi-bin]$
[guest@localhost cgi-bin]$ ll
итого 4
-rwxr--r--. 1 apache apache 102 авг 6 09:46 t.py
[guest@localhost cgi-bin]$
[guest@localhost cgi-bin]$ cat t.py
#!/usr/bin/env python3
import sys
print('Content-type: text/html')
print()
print(sys.stdin.read())
[guest@localhost cgi-bin]$
[guest@localhost ~]$ sudo systemctl start httpd.service
[guest@localhost ~]$
[guest@localhost cgi-bin]$ curl -X POST --data '{"name": "n", "value": 1}' http://localhost:80/cgi-bin/t.py
{"name": "n", "value": 1}
[guest@localhost cgi-bin]$
[guest@localhost ~]$ sudo systemctl stop httpd.service
[guest@localhost ~]$
Отредактировано py.user.next (Авг. 6, 2021 01:54:04)
Офлайн