gpt4 book ai didi

php - 通过 Qt 发送 POST 缩小帖子内容

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:23:22 27 4
gpt4 key购买 nike

我创建了一个反馈报告器,它将一些信息发送到服务器。

这是发件人部分:

QUrl url;
url.setUrl("http://myprettyURL/server.php");

QNetworkRequest request(url);
QNetworkAccessManager *manager = new QNetworkAccessManager(this);

QByteArray content = "Some very long content (60Ko)";

manager->post(request, content);
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(onSyncRequestFinished(QNetworkReply*)));

这是服务器部分:

$i = 0
foreach($_POST as $post){
file_put_contents( $submission_dir . "/log" . $i , $post);
$i++;
}

发件人发送了 60Ko 的文本(很多文本,但不是大数据)但只传输了 1Ko。

Qt 抛出以下错误:

qhttpnetworkrequest.cpp static QByteArray QHttpNetworkRequestPrivate::header(const QHttpNetworkRequest &, bool) @164 content-type missing in HTTP POST, defaulting to application/x-www-form-urlencoded. Use QNetworkRequest::setHeader() to fix this problem.

所以我加入了这一行:

request.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");

已测试 application/x-www-form-urlencoded multipart/form-datatext/plain 但均无效。

post_max_size 设置为 32Mo,所以我不认为它来自这里。

有什么线索可以缩小内容吗?

最佳答案

所有这些内容类型都需要在发送之前对数据进行编码!只要您实际发送文本而不是二进制数据,text/plain 内容类型使用起来最简单。

要发送纯文本,必须将其放在QString中,然后将其编码为utf-8,最后将内容类型相应地设置为text/html; charset=utf-8.

因此:

QString text(QStringLiteral("foo"));
QByteArray const data = text.toUtf8();

QNetworkRequest request(QUrl(QStringLiteral("http://myprettyURL/server.php")));
request.setHeader(QNetworkRequest::ContentTypeHeader,
QStringLiteral("text/html; charset=utf-8"));
manager->post(request, data);

关于php - 通过 Qt 发送 POST 缩小帖子内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22690622/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com