在Qt中使用HttpRequest将.txt文件上载到服务器

在Qt中使用HttpRequest将.txt文件上载到服务器,qt,Qt,我在使用Qt将.txt文件上传到JavaServlet服务器时遇到了一个问题 我花了5天的时间,尝试了很多解决方案。但没有一个成功。有人能帮我吗 问题在于Qt代码可以正常工作。但是服务器没有收到来自Qt的任何httprequest请求。 这是Qt中的一种解决方案: QFile file("dataToSend.txt"); nam = new QNetworkAccessManager(this); QObject::connect(nam, SIGNAL(finished(QNetworkRe

我在使用Qt将.txt文件上传到JavaServlet服务器时遇到了一个问题

我花了5天的时间,尝试了很多解决方案。但没有一个成功。有人能帮我吗

问题在于Qt代码可以正常工作。但是服务器没有收到来自Qt的任何httprequest请求。

这是Qt中的一种解决方案:

QFile file("dataToSend.txt");
nam = new QNetworkAccessManager(this);
QObject::connect(nam, SIGNAL(finished(QNetworkReply*)),
             this, SLOT(finishedSlot(QNetworkReply*)));
QNetworkRequest r(QUrl("http://localhost:9999/server"));

QString bound="---------------------------723690991551375881941828858";
QByteArray data(QString("--"+bound+"\r\n").toAscii());
data += QString("--" + bound + "\r\n").toAscii();
data += "Content-Disposition: form-data; name=\"file\"; filename=\""+file.fileName()+"\"\r\n";
data += "Content-Type: text/plain\r\n\r\n";
file.open(QIODevice::ReadOnly);
data += file.readAll();
data += "\r\n";
data += QString("--" + bound + "\r\n").toAscii();
r.setRawHeader(QString("Content-Type").toAscii(),QString("multipart/form-data; boundary=" + bound).toAscii());
r.setRawHeader(QString("Content-Length").toAscii(), QString::number(data.length()).toAscii());

reply = nam->post(r,data);
reply=nam->get(r);
这是另一个解决方案,也不是wokring:

nam = new QNetworkAccessManager(this);
QObject::connect(nam, SIGNAL(finished(QNetworkReply*)),
            this, SLOT(finishedSlot(QNetworkReply*)));
QFile *file=new QFile("dataToSend.txt");
QNetworkRequest request(QUrl("http://localhost:9999/server"));
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/octet-streamd");

if(!file->open(QIODevice::ReadOnly)){
   qDebug("%s\n",qPrintable("can't open the file!"));
   return;
}

// post data to server
reply= nam->post(request,file);
file->setParent(reply);
reply=nam->get(request);
您不能
post()
将某些内容发送到服务器,下面的一行执行
get()
以期望看到该文件。 通常您必须发布,等待
post
完成,然后才能看到修改。。
有很多链接你可以用来做正确的事情

你对这些行的期望是什么:
reply=nam->post(请求,文件);文件->设置父项(回复);回复=nam->get(请求)?当您说“没有收到任何东西”时,您的意思是没有连接还是servlet没有收到数据?你确定你的servlet吗?