I compared the data i send and recieve and it is turned out that the end of my data, which i recieve on my server is cut, is QNetworkmanager has a request lenght limit?
photo struct.
typedef struct Photo_{
std::string name;
int likes;
int comments;
int id;
int user_id;
QByteArray img_in_bytes;
}photo;
Here is the function that convert data to json and send it to server.
void MainWindow::send_new_photo_to_server(photo item){
QJsonDocument doc;
QNetworkRequest req(url);
qDebug() << QString::number(item.likes);
qDebug() << QString::number(item.comments);
qDebug() << QString::fromStdString(item.name);
req.setHeader(QNetworkRequest::ContentTypeHeader, "text");
req.setRawHeader("request-type", "addMainEntity");
QBuffer buf(&item.img_in_bytes);
QByteArray img_in_bytes = buf.data().toBase64();
QJsonObject object;
object.insert("comments", QString::number(item.comments));
object.insert("img_in_bytes",QLatin1String(img_in_bytes));
object.insert("name", QString::fromStdString(item.name));
object.insert("likes", QString::number(item.likes));
doc.setObject(object);
qDebug() << doc.toJson();
manager->post(req, doc.toJson());
qDebug() << "here you are";
}
There is function that handle a request. It`s no need in upload procces function becouse data has already been currupted by the time it is called.
void Server::get_request(){
i++;
qDebug() << i << "\n";
QTcpSocket* socket = qobject_cast<QTcpSocket*>(sender());
QString data = socket->readAll();
socket->waitForBytesWritten(3000);
qDebug() << "Recieved data: \n" << data;
this->process_request(data);
}