Несколько запросов с использованием QNetworkAccessManager qt

Я хотел бы отправить несколько запросов POST, используя один QNetworkAccessManager, но это работает только один раз. На второй и последующие запросы был получен пустой ответ. Я знаю, что могу использовать несколько экземпляров менеджера, но я читал, что это архитектурный недостаток. Я также нашел это: с использованием QNetworkAccessManager GET несколько раз, но я не понимаю возможное решение. Вот мой код:

class Networker(QObject):

    gotResponse = pyqtSignal(str)

    def proc(self, reply):
        s = bytes(reply.readAll()).decode('utf-8')
        self.gotResponse.emit(s)


    def __init__(self, parent=None):
        super(Networker, self).__init__(parent)
        self.manager = QNetworkAccessManager()



    def send(self):
        req = QNetworkRequest(QUrl("http://127.0.0.1:8000/"))
        req.setHeader(QNetworkRequest.ContentTypeHeader, "text/json;charset=utf-8")

        data = QByteArray('{"id":1}')

        self.manager.finished.connect(self.proc)
        self.manager.post(req, data)

Основные (без учета импорта):

def main():

    app = QtWidgets.QApplication(sys.argv)

    n = Networker(app)
    w = QtWidgets.QWidget()


    w.setWindowTitle("main")

    layout = QBoxLayout(QBoxLayout.LeftToRight, w)

    l1 = QTextEdit("Result", w)
    l1.resize(300, 600)
    n.gotResponse.connect(l1.setText)
    layout.addWidget(l1)
    w.show()

    l2 = QTextEdit("Idle", w)
    l2.resize(250, 600)

    layout.addWidget(l2)
    w.resize(500, 600)

    btn = QPushButton("Send", w)
    layout.addWidget(btn)   
    btn.clicked.connect(n.send)         
    w.show()





    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

person Pavel Mazaev    schedule 13.07.2015    source источник
comment
Это не полный тестовый пример для демонстрации проблемы. Пожалуйста, покажите, как вы вызываете эти множественные запросы. Нам нужно увидеть полную программу, а не только фрагмент.   -  person Kuba hasn't forgotten Monica    schedule 14.07.2015
comment
Использование QNetworkReply является оптимальным решением. Как подробно описано в посте, на который вы ссылались.   -  person Yang Kui    schedule 14.07.2015
comment
Я думаю, что использую QNetworkReply так же, как он используется в упомянутом сообщении. На самом деле я не собирался использовать сигналы, но столкнулся с проблемой получения асинхронного ответа.   -  person Pavel Mazaev    schedule 14.07.2015