9 QString
MakeRequest(
const QString &methord,
const QString &url,
int length,
const QString &soapAction,
const QString &ip,
const QString &port)
12 QString request = methord.toUpper() +
" /" + url +
" HTTP/1.1" +
"\n";
13 request +=
"Cache-Control: no-cache\n";
14 request +=
"Connection: Close\n";
15 request +=
"Pragma: no-cache\n";
16 request +=
"Host: " + ip +
":" + port +
"\n";
17 request +=
"User-Agent: Microsoft-Windows/6.3 UPnP/1.0 Microsoft-DLNA DLNADOC/1.50\n";
18 request +=
"FriendlyName.DLNA.ORG: ";
19 #if TTK_QT_VERSION_CHECK(5,6,0)
20 request += QSysInfo::machineHostName();
22 request +=
"Greedysky";
28 request +=
"Content-Length: " + QString::number(length) +
"\n";
29 request +=
"Content-Type: text/xml; charset=\"utf-8\"\n";
32 if(soapAction.length() > 0)
34 request +=
"SOAPAction: \"" + soapAction +
"\"\n";
43 sock.connectToHost(ip, port.toUShort());
44 constexpr
int timeout = 5000 / 2;
46 if(sock.waitForConnected(timeout))
48 sock.write(data.toLatin1());
52 return "Couldn't connect";
55 if(!sock.waitForBytesWritten(timeout))
57 return "Couldn't write";
60 if(sock.waitForReadyRead(timeout))
62 return QString::fromUtf8(sock.readAll());
66 return "Couldn't get an answer";
72 const QStringList &data_list = data.split(
"\r\n\r\n");
73 return (data_list.count() >= 2) ? data_list[1] : QString();
78 const QStringList &data_list = data.split(
" ");
79 if(data_list.count() >= 2)
82 const int code = data_list[1].toInt(&ok);
The namespace of the dlna helper.
QString MakeRequest(const QString &methord, const QString &url, int length, const QString &soapAction, const QString &ip, const QString &port)
QString removeHttpHeader(const QString &data)
QString makeSocketGetReply(const QString &ip, const QString &port, const QString &data)
int GetResponseCode(const QString &data)