Я пишу быстрый скрипт, который должен быть развернут на сервере IIS, но я не могу прочитать входные данные.
В данный момент я использую Postman для тестирования, использую параметр «raw» и отправляю простую структуру JSON, такую как:
{ "data": "test" }
Код выглядит так:
#!/usr/bin/env python
print("HTTP/1.1 200 OK\nContent-Type: text/html\n\n")
# Check if there is a character waiting, otherwise this would block
import sys
string = ""
while True:
c = sys.stdin.read(1) # reads one byte at a time, similar to getchar()
print(c)
if c == ' ':
break
string += c
print(string)
Я уже пробовал много разных вещей. Как ...
Использование msvcrt.getch (), включая приведенные здесь скриптовые реализации:
Python читает один символ пользователя
Также пробовал полное использование как есть, и изменение
http://code.activestate.com/recipes/579095-getch-like-unbuffered-character-reading-from-stdin/
Никто на самом деле не работает.
Если я просто использую (linux штраф):
string = sys.stdin.read()
он останавливается только после тайм-аута ... создается впечатление, что он ожидает символа \ n.
Я попытался вызвать sys.stdin.close()
, но это привело к ошибке ввода-вывода.
Если я прочитал «данные» через getche, я получил один байт обратно, но это не удалось расшифровать.
ТАК, чтобы было понятно, это веб-скрипт IIS, и нет взаимодействия с клавиатурой, мне нужно прочитать тип контента "application / json", как в команде CURL, однако поле CGI fieldStorage пусто и не может обрабатываться, и я ищу правильный способ сделать это.