Qt webserver with POST support
-
Hi,
Currently I am implementing a webserver using the QTcpServer class. The basic feature is working pretty well but now I have to support the management of POST requests. For now, I am able to read the header of the client request, but I can't have access to the variables attached to it. Is there any way to implement this feature using Qt?I really appreciate any hint. Thanks!
-
Hi,
HTTP doesn't define the format of Request body; here you can see an example (after the headers there'a a blank line and after the body).
This means that, after the header, you'll find a blank line and the body; the format of the body depends on your interface (the most common formats for body are Text, XML and JSON)
NOTE: if you're writing the server, you have to define the format of the body
UPDATE: here you'll find more information
-
I have written a more powerful framework than doing everything from scratch with QTcpServer, might check it out here:
https://github.com/cybercatalyst/qtwebserver
And here are examples how to easily use it in your project:
https://github.com/cybercatalyst/qtwebserver-examples
Not only does it handle all kind of methods, but also decodes form data and support https out of the box. I wrote it originally to suit my needs, but it has evolved since, so I have have cleaned up the code and generalized it for others to be used.
-
Damn it! I was looking for something like this and just found it when I already implemented what I need. Will be your class QtWebServer a future native component of Qt?
Anyway, nice to see this kind of resources for future developments. Great contribution, congratulations! :)
-
@xtingray
I think that currently it's not close to being ready for integration into the official framework, but it is optionally being distributed through qt-pods (a standardized package system for smaller, inofficial Qt extensions). See here for more info:https://github.com/qt-pods/qt-pods
The aim of qt-pods (inspired by cocoapods from MacOS) is to have foreign code included in your project with a single click through standardized means. It's in early stage though.