отправка с клиента - QNetworkAccessManager::post, приём на сервере - отлов сигнала readyRead() QsslSocket'а. Всё работает хорошо, НО запрос проходит на сервер в 2 этапа, т.е. сигнал отрабатывает дважды - сначала заголовок с пустым телом, потом тело без заголовка. При отправке того же запроса постманом/js скриптом отрабатывает корректно. Проблема не гуглиться. Сталкивался кто?
что вас удивляет в том, что данные приходят частями?
это нормально. Приём должен делаться в буфер и обрабатываться по мере поступления. Конечно можно забиться на то, что отправляющий будет всё отправлять одним пакетом, но это будет неправильно с точки зрения надёжности
Как определить конец запроса со 100% достоверностью? По разрыву соединения?
это если соединение разрывается сразу по отправке. Но часто ведь соединение держат очень долго
Сигнала finish() не нашёл, disconnected() не вызывается, пока клиент не оборвёт соединение, и я уже не могу послать ответ
Это чего сигнал? Явно не сокета. Есть finished в QThread, остальных не нашёл
QNetworkAccessManager я думал через него http отправляешь
Отправляю через него, принимаю через QTcpServer
У него клиент через QNAM отправляет, а сервер на сокетах принимает
ок, немного не так понял. могу посоветовать посмотреть на http сервер от Qt, но он вроде не в релизе еще https://www.qt.io/blog/2019/01/25/introducing-qt-http-server
Спасибо, ссылка в статье битая, погуглю
Как вариант есть http://stefanfrings.de/qtwebapp/index-en.html На хабре есть разбор библиотеки.
Обсуждают сегодня