mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-08-19 21:03:30 -07:00
Send 204 when WebAPI response contains no data
This commit is contained in:
parent
20482be4a8
commit
72548fd18d
1 changed files with 34 additions and 27 deletions
|
@ -361,36 +361,43 @@ void WebApplication::doProcessRequest()
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
const APIResult result = controller->run(action, m_params, data);
|
const APIResult result = controller->run(action, m_params, data);
|
||||||
switch (result.data.userType())
|
if (result.data.isNull())
|
||||||
{
|
{
|
||||||
case QMetaType::QJsonDocument:
|
status(204);
|
||||||
print(result.data.toJsonDocument().toJson(QJsonDocument::Compact), Http::CONTENT_TYPE_JSON);
|
|
||||||
break;
|
|
||||||
case QMetaType::QByteArray:
|
|
||||||
{
|
|
||||||
const auto resultData = result.data.toByteArray();
|
|
||||||
print(resultData, (!result.mimeType.isEmpty() ? result.mimeType : Http::CONTENT_TYPE_TXT));
|
|
||||||
if (!result.filename.isEmpty())
|
|
||||||
{
|
|
||||||
setHeader({u"Content-Disposition"_s, u"attachment; filename=\"%1\""_s.arg(result.filename)});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case QMetaType::QString:
|
|
||||||
default:
|
|
||||||
print(result.data.toString(), Http::CONTENT_TYPE_TXT);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
switch (result.status)
|
|
||||||
{
|
{
|
||||||
case APIStatus::Async:
|
switch (result.data.userType())
|
||||||
status(202);
|
{
|
||||||
break;
|
case QMetaType::QJsonDocument:
|
||||||
case APIStatus::Ok:
|
print(result.data.toJsonDocument().toJson(QJsonDocument::Compact), Http::CONTENT_TYPE_JSON);
|
||||||
default:
|
break;
|
||||||
status(200);
|
case QMetaType::QByteArray:
|
||||||
break;
|
{
|
||||||
|
const auto resultData = result.data.toByteArray();
|
||||||
|
print(resultData, (!result.mimeType.isEmpty() ? result.mimeType : Http::CONTENT_TYPE_TXT));
|
||||||
|
if (!result.filename.isEmpty())
|
||||||
|
{
|
||||||
|
setHeader({u"Content-Disposition"_s, u"attachment; filename=\"%1\""_s.arg(result.filename)});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case QMetaType::QString:
|
||||||
|
default:
|
||||||
|
print(result.data.toString(), Http::CONTENT_TYPE_TXT);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (result.status)
|
||||||
|
{
|
||||||
|
case APIStatus::Async:
|
||||||
|
status(202);
|
||||||
|
break;
|
||||||
|
case APIStatus::Ok:
|
||||||
|
default:
|
||||||
|
status(200);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (const APIError &error)
|
catch (const APIError &error)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue