12 sock.connectToHost(ip, port.toUShort());
13 constexpr
int timeout = 5000 / 2;
15 if(sock.waitForConnected(timeout))
17 sock.write(data.toLatin1());
21 return "Couldn't connect";
24 if(!sock.waitForBytesWritten(timeout))
26 return "Couldn't write";
29 if(sock.waitForReadyRead(timeout))
31 return QString::fromUtf8(sock.readAll());
35 return "Couldn't get an answer";
39 QString
makeRequest(
const QString &methord,
const QString &url,
int length,
const QString &soapAction,
const QString &ip,
const QString &port)
42 QString request = methord.toUpper() +
" /" + url +
" HTTP/1.1" +
"\n";
43 request +=
"Cache-Control: no-cache\n";
44 request +=
"Connection: Close\n";
45 request +=
"Pragma: no-cache\n";
46 request +=
"Host: " + ip +
":" + port +
"\n";
47 request +=
"User-Agent: Microsoft-Windows/6.3 UPnP/1.0 Microsoft-DLNA DLNADOC/1.50\n";
48 request +=
"FriendlyName.DLNA.ORG: ";
49 #if TTK_QT_VERSION_CHECK(5,6,0)
50 request += QSysInfo::machineHostName();
52 request +=
"Greedysky";
58 request +=
"Content-Length: " + QString::number(length) +
"\n";
59 request +=
"Content-Type: text/xml; charset=\"utf-8\"\n";
62 if(soapAction.length() > 0)
64 request +=
"SOAPAction: \"" + soapAction +
"\"\n";
72 const QStringList &data_list = data.split(
"\r\n\r\n");
73 return (data_list.count() >= 2) ? data_list[1] : QString();
83 const QStringList &data_list = data.split(
TTK_SPACE);
84 if(data_list.count() >= 2)
87 const int code = data_list[1].toInt(&ok);
int getResponseCode(const QString &data)
bool isValid(const QString &data)
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)
The namespace of the dlna helper.