Найти - Пользователи
Полная версия: Прием json post запроса на скрипт Python на сервере Apache как реализовать?
Начало » Python для новичков » Прием json post запроса на скрипт Python на сервере Apache как реализовать?
1
code22
На вебсервере 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 формы..


подскажите пжл!


py.user.next
Просто тестовый скрипт напиши, положи его на сервере и пусть он выводит всё из 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 ~]$


tags: http apache
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB