Я пытаюсь отправить запрос POST из Qt, где тело находится в формате JSON. Во-первых, я утверждаю, что запрос работает в curl:
curl -i -H "Content-Type: application/json" -d '{"key1": "value1", "key2": "value2"}' -X POST http://myserver.com/api
Это работает нормально, я получаю ожидаемый ответ от сервера. То же самое работает в Python. Теперь мне нужно отправить этот запрос из C ++ / Qt:
QNetworkAccessManager *mgr = new QNetworkAccessManager(this);
QHttpMultiPart *httpMultiPart = new QHttpMultiPart(mgr);
QHttpPart *httpPart = new QHttpPart();
httpPart->setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
httpPart->setBody("{\"key1\":\"value1\", \"key2\":\"value2\"}");
httpMultiPart->append(*httpPart);
QNetworkReply *reply = mgr->post(QNetworkRequest(QUrl("http://myserver.com/api")), httpMultiPart);
QObject::connect(reply, &QNetworkReply::finished, [=]()
{
QString err = reply->errorString();
QString contents = QString::fromUtf8(reply->readAll());
});
Теперь я получаю ошибку, когда errorString возвращает: `
"Error downloading http://myserver.com/api - server replied: Unsupported Media Type"`
В чем может быть причина? Как я должен отправить запрос POST, как тот, который я отправляю с помощью curl?