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
|
||||
{
|
||||
const APIResult result = controller->run(action, m_params, data);
|
||||
switch (result.data.userType())
|
||||
if (result.data.isNull())
|
||||
{
|
||||
case QMetaType::QJsonDocument:
|
||||
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;
|
||||
status(204);
|
||||
}
|
||||
|
||||
switch (result.status)
|
||||
else
|
||||
{
|
||||
case APIStatus::Async:
|
||||
status(202);
|
||||
break;
|
||||
case APIStatus::Ok:
|
||||
default:
|
||||
status(200);
|
||||
break;
|
||||
switch (result.data.userType())
|
||||
{
|
||||
case QMetaType::QJsonDocument:
|
||||
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;
|
||||
}
|
||||
|
||||
switch (result.status)
|
||||
{
|
||||
case APIStatus::Async:
|
||||
status(202);
|
||||
break;
|
||||
case APIStatus::Ok:
|
||||
default:
|
||||
status(200);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (const APIError &error)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue