Чтение «стандартного ввода» из Python3 в Windows IIS (службы IIS) 7 - PullRequest
0 голосов
/ 09 ноября 2018

Я пишу быстрый скрипт, который должен быть развернут на сервере 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 пусто и не может обрабатываться, и я ищу правильный способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...