Ошибка выдачи Chrome Native Messaging при отправке строки base64 клиенту

Использование нативного обмена сообщениями Chrome пример приложения в качестве шаблона я могу сделать системный вызов bash

os.system("<bash command>")

Требование состоит в том, чтобы вернуть строку base64 из скрипта Python.

os.system("<bash command that returns a base64 string>")

который может проверить, возвращает ожидаемый результат в terminal.

Однако при настройке кода в native-messaging-example-host в строках 97-98 на

dataurl = os.system("<bash command that returns a base64 string>")
text = '{"text": "' + dataurl + '"}'

окно приложения закрывается и

Failed to connect: Error when communicating with the native messaging host.

печатается на HTML-странице приложения.

При использовании исходного кода

text = '{"text": "' + self.messageContent.get() + '"}' 

и отправка строки base64, соответствующей выводу, который команда bash выводит на хост python, base64 отправляется обратно клиенту. Длина тестируемой строки base64 составляет 43304, что меньше максимального размера сообщений, отправляемых с хоста, в 1 МБ.

Почему приложение выдает ошибку и не отправляет строку base64 с хоста python клиенту Chromium?


person guest271314    schedule 20.01.2018    source источник


Ответы (1)


import supprocess as sub
ter = sub.Popen("<bash command that returns a base64 string>",
                          shell=True,stdout=sub.PIPE)
tread = cmd.communicate()[0].decode("u8")
text = '{"text": "' + tread + '"}'

Попробуйте это ^_^

person Alaa Akiel    schedule 20.01.2018
comment
Пробовал код, заменяющий subprocess на supprocess, хотя строка не отправляется клиенту. Строка, отправленная на хост, повторяется. - person guest271314; 20.01.2018