本文整理汇总了C++中QUrl::encodedPath方法的典型用法代码示例。如果您正苦于以下问题:C++ QUrl::encodedPath方法的具体用法?C++ QUrl::encodedPath怎么用?C++ QUrl::encodedPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QUrl
的用法示例。
在下文中一共展示了QUrl::encodedPath方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: tryTakeSocket
void tryTakeSocket()
{
if(!canTake())
return;
ZWebSocket *sock = zhttpIn->takeNextSocket();
if(!sock)
return;
QUrl requestUri = sock->requestUri();
log_info("IN ws id=%s, %s", sock->rid().second.data(), requestUri.toEncoded().data());
bool isSecure = (requestUri.scheme() == "wss");
QString host = requestUri.host();
// look up the route
DomainMap::Entry route = domainMap->entry(DomainMap::WebSocket, isSecure, host, requestUri.encodedPath());
// before we do anything else, see if this is a sockjs request
if(!route.isNull() && !route.sockJsPath.isEmpty() && requestUri.encodedPath().startsWith(route.sockJsPath))
{
sockJsManager->giveSocket(sock, route.sockJsPath.length(), route.sockJsAsPath, route);
return;
}
log_debug("creating wsproxysession for zws id=%s", sock->rid().second.data());
doProxySocket(sock, route);
}
示例2: qFileInfo
void LocalApp::getUrl( QUrl oldUrl , QUrl &newUrl){
QString scriptName;
#ifndef USE_QT5
#ifdef WINDOWS
scriptName = home+"\\" + oldUrl.encodedPath();
#else
scriptName = home+"/" + oldUrl.encodedPath();
#endif
//scriptName = tmpUrl.toString(FULLPATH);
#else
#ifdef WINDOWS
scriptName = home+"\\" + oldUrl.path();
#else
scriptName = home+"/" + oldUrl.path();
#endif
//scriptName = tmpUrl.toDisplayString(QUrl::FullyDecoded);
//scriptName.remove(0,6);
#endif
if( QDir(scriptName).exists() ) {
#ifdef WINDOWS
if( scriptName.at(scriptName.size()-1) == '/')
#else
if( scriptName.at(scriptName.size()-1) == '\\')
#endif
scriptName = scriptName + "index.py";
else
#ifdef WINDOWS
scriptName = scriptName + "\\index.py";
#else
scriptName = scriptName + "/index.py";
#endif
}
if ( !getScript(scriptName) ){
QFileInfo qFileInfo(scriptName);
if ( qFileInfo.fileName() == "index.py" ){
scriptName = qFileInfo.dir().absolutePath() + "/index.html";
}
}
#ifndef USE_QT5
ERR<<"INFO: LocalApp::getUrl(): Encoded Path: "<<oldUrl.encodedPath()<<", "<<scriptName<<endl;
newUrl.setPath(scriptName);
#else
ERR<<"INFO: LocalApp::getUrl(): Path: "<<oldUrl.path()<<", "<<scriptName<<endl;
newUrl.setPath(scriptName);
#endif
}
示例3: QUrl
QUrl
Mirrors::randomMirror(const QList<QUrl> & mirrors, bool addkey,
const QString & postfix, bool api)
{
static int i = 0;
if (mirrors.isEmpty())
return QUrl();
i++;
i %= mirrors.size();
QUrl m = mirrors.at(i);
QString path = m.path();
if (api)
path += "/api/";
if (addkey)
path += key() + "/";
if (!postfix.isEmpty())
path += postfix;
m.setPath(path);
#ifdef Q_WS_WIN
qWarning() << m.path() << m.encodedPath();
#endif
return m;
}
示例4: encodedPath
QByteArray QUrlProto::encodedPath() const
{
QUrl *item = qscriptvalue_cast<QUrl*>(thisObject());
if (item)
return item->encodedPath();
return QByteArray();
}
示例5: processQuery
void processQuery() {
QTcpSocket *socket = qobject_cast<QTcpSocket*>(sender());
QByteArray requestData = socket->readAll();
int pos = requestData.indexOf("\r\n");
QByteArray requestLine = requestData.left(pos);
requestData.remove(0, pos + 2);
QList<QByteArray> entries = requestLine.split(' ');
QByteArray method = entries.value(0);
QByteArray address = entries.value(1);
QByteArray version = entries.value(2);
QUrl url = QUrl::fromEncoded(address);
if (!url.isValid()) {
qWarning() << "Invalid URL:" << url;
socket->disconnectFromHost();
return;
}
QString host = url.host();
int port = (url.port() < 0) ? 80 : url.port();
QByteArray req = url.encodedPath();
if (url.hasQuery())
req.append('?').append(url.encodedQuery());
requestLine = method + " " + req + " " + version + "\r\n";
requestData.prepend(requestLine);
QString key = host + ':' + QString::number(port);
QTcpSocket *proxySocket = socket->findChild<QTcpSocket*>(key);
if (proxySocket) {
proxySocket->setObjectName(key);
proxySocket->setProperty("url", url);
proxySocket->setProperty("requestData", requestData);
proxySocket->write(requestData);
} else {
proxySocket = new QTcpSocket(socket);
proxySocket->setObjectName(key);
proxySocket->setProperty("url", url);
proxySocket->setProperty("requestData", requestData);
connect(proxySocket, SIGNAL(connected()), this, SLOT(sendRequest()));
connect(proxySocket, SIGNAL(readyRead()), this, SLOT(transferData()));
connect(proxySocket, SIGNAL(disconnected()), this, SLOT(closeConnection()));
connect(proxySocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(closeConnection()));
proxySocket->connectToHost(host, port);
}
}
示例6: mkdirRequest
QNetworkReply* ownCloudInfo::mkdirRequest( const QString& dir )
{
qDebug() << "OCInfo Making dir " << dir;
MirallConfigFile cfgFile( _configHandle );
QUrl url = QUrl( cfgFile.ownCloudUrl( _connection, true ) + dir );
QHttp::ConnectionMode conMode = QHttp::ConnectionModeHttp;
if (url.scheme() == "https")
conMode = QHttp::ConnectionModeHttps;
QHttp* qhttp = new QHttp(QString(url.encodedHost()), conMode, 0, this);
connect(qhttp, SIGNAL(requestStarted(int)), this,SLOT(qhttpRequestStarted(int)));
connect(qhttp, SIGNAL(requestFinished(int, bool)), this,SLOT(qhttpRequestFinished(int,bool)));
connect(qhttp, SIGNAL(responseHeaderReceived(QHttpResponseHeader)), this, SLOT(qhttpResponseHeaderReceived(QHttpResponseHeader)));
//connect(qhttp, SIGNAL(authenticationRequired(QString,quint16,QAuthenticator*)), this, SLOT(qhttpAuthenticationRequired(QString,quint16,QAuthenticator*)));
QHttpRequestHeader header("MKCOL", QString(url.encodedPath()), 1,1); /* header */
header.setValue("Host", QString(url.encodedHost()));
header.setValue("User-Agent", QString("mirall-%1").arg(MIRALL_STRINGIFY(MIRALL_VERSION)).toAscii() );
header.setValue("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
header.setValue("Accept-Language", "it,de-de;q=0.8,it-it;q=0.6,en-us;q=0.4,en;q=0.2");
header.setValue("Connection", "keep-alive");
header.setContentType("application/x-www-form-urlencoded"); //important
header.setContentLength(0);
QString con = _configHandle;
if( con.isEmpty() ) con = DEFAULT_CONNECTION;
if( _credentials.contains(con)) {
oCICredentials creds = _credentials.value(con);
QString concatenated = creds.user + QLatin1Char(':') + creds.passwd;
const QString b(QLatin1String("Basic "));
QByteArray data = b.toLocal8Bit() + concatenated.toLocal8Bit().toBase64();
header.setValue("Authorization", data);
qhttp->setUser( creds.user, creds.passwd );
}
int david = qhttp->request(header,0,0);
//////////////// connect(davinfo, SIGNAL(dataSendProgress(int,int)), this, SLOT(SendStatus(int, int)));
/////////////////connect(davinfo, SIGNAL(done(bool)), this,SLOT(DavWake(bool)));
//connect(_http, SIGNAL(requestFinished(int, bool)), this,SLOT(qhttpRequestFinished(int,bool)));
///////////connect(davinfo, SIGNAL(responseHeaderReceived(constQHttpResponseHeader &)), this, SLOT(RegisterBackHeader(constQHttpResponseHeader &)));
return NULL;
}
示例7: startHandleRequest
void startHandleRequest(ZhttpRequest *req, int basePathStart, const QByteArray &asPath, const DomainMap::Entry &route)
{
Session *s = new Session(this);
s->req = req;
QUrl uri = req->requestUri();
QByteArray encPath = uri.encodedPath();
s->path = encPath.mid(basePathStart);
QList<QByteArray> parts = s->path.split('/');
if(!parts.isEmpty() && parts.last().startsWith("jsonp"))
{
if(uri.hasQueryItem("callback"))
{
s->jsonpCallback = uri.queryItemValue("callback").toUtf8();
uri.removeAllQueryItems("callback");
}
else if(uri.hasQueryItem("c"))
{
s->jsonpCallback = uri.queryItemValue("c").toUtf8();
uri.removeAllQueryItems("c");
}
}
s->asUri = uri;
s->asUri.setScheme((s->asUri.scheme() == "https") ? "wss" : "ws");
if(!asPath.isEmpty())
s->asUri.setEncodedPath(asPath);
else
s->asUri.setEncodedPath(encPath.mid(0, basePathStart));
s->route = route;
connect(req, SIGNAL(readyRead()), SLOT(req_readyRead()));
connect(req, SIGNAL(bytesWritten(int)), SLOT(req_bytesWritten(int)));
connect(req, SIGNAL(error()), SLOT(req_error()));
sessions += s;
sessionsByRequest.insert(s->req, s);
processRequestInput(s);
}
示例8: DelegateMeTo
void QmitkDiffusionImagingAppIntroPart::DelegateMeTo(const QUrl& showMeNext)
{
QString scheme = showMeNext.scheme();
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
QByteArray urlHostname = showMeNext.encodedHost();
QByteArray urlPath = showMeNext.encodedPath();
QByteArray dataset = showMeNext.encodedQueryItemValue("dataset");
QByteArray clear = showMeNext.encodedQueryItemValue("clear");
#else
QByteArray urlHostname = QUrl::toAce(showMeNext.host());
QByteArray urlPath = showMeNext.path().toLatin1();
QUrlQuery query(showMeNext);
QByteArray dataset = query.queryItemValue("dataset").toLatin1();
QByteArray clear = query.queryItemValue("clear").toLatin1();//showMeNext.encodedQueryItemValue("clear");
#endif
if (scheme.isEmpty()) MITK_INFO << " empty scheme of the to be delegated link" ;
// if the scheme is set to mitk, it is to be tested which action should be applied
if (scheme.contains(QString("mitk")) )
{
if(urlPath.isEmpty() ) MITK_INFO << " mitk path is empty " ;
// searching for the perspective keyword within the host name
if(urlHostname.contains(QByteArray("perspectives")) )
{
// the simplified method removes every whitespace
// ( whitespace means any character for which the standard C++ isspace() method returns true)
urlPath = urlPath.simplified();
QString perspectiveId(urlPath.data());
perspectiveId.replace(QString("/"), QString("") );
// is working fine as long as the perspective id is valid, if not the application crashes
GetIntroSite()->GetWorkbenchWindow()->GetWorkbench()->ShowPerspective(perspectiveId, GetIntroSite()->GetWorkbenchWindow() );
// search the Workbench for opened StdMultiWidgets to ensure the focus does not stay on the welcome screen and is switched to
// an StdMultiWidget if one available
ctkPluginContext* context = QmitkDiffusionApplicationPlugin::GetDefault()->GetPluginContext();
ctkServiceReference ref = context->getServiceReference<mitk::IDataStorageService>();
if (ref)
{
mitk::IDataStorageService* service = context->getService<mitk::IDataStorageService>(ref);
berry::IEditorInput::Pointer editorInput(
new mitk::DataStorageEditorInput( service->GetActiveDataStorage() ));
// the solution is not clean, but the dependency to the StdMultiWidget was removed in order to fix a crash problem
// as described in Bug #11715
// This is the correct way : use the static string ID variable
// berry::IEditorPart::Pointer editor = GetIntroSite()->GetPage()->FindEditors( editorInput, QmitkStdMultiWidgetEditor::EDITOR_ID );
// QuickFix: we use the same string for an local variable
const QString stdEditorID = "org.mitk.editors.stdmultiwidget";
// search for opened StdMultiWidgetEditors
QList<berry::IEditorReference::Pointer> editorList = GetIntroSite()->GetPage()->FindEditors( editorInput, stdEditorID, 1 );
// if an StdMultiWidgetEditor open was found, give focus to it
if(!editorList.isEmpty())
{
GetIntroSite()->GetPage()->Activate( editorList[0]->GetPart(true) );
}
}
}
}
// if the scheme is set to http, by default no action is performed, if an external webpage needs to be
// shown it should be implemented below
else if (scheme.contains(QString("http")) )
{
QDesktopServices::openUrl(showMeNext);
// m_view->load( ) ;
}
else if(scheme.contains("qrc"))
{
m_view->load(showMeNext);
}
}
示例9: processQuery
/*------------------------------------------------------------------------------*
*------------------------------------------------------------------------------*/
void WebProxy::processQuery() {
QTcpSocket *socket = qobject_cast<QTcpSocket*>(sender());
QByteArray requestData = socket->readAll();
int pos = requestData.indexOf("\r\n");
QByteArray requestLine = requestData.left(pos);
requestData.remove(0, pos + 2);
QList<QByteArray> entries = requestLine.split(' ');
QByteArray method = entries.value(0);
QByteArray address = entries.value(1);
QByteArray version = entries.value(2);
qDebug( ) << __FILE__ << __FUNCTION__ << "Processing " << address;
QUrl url = QUrl::fromEncoded(address);
if (!url.isValid()) {
//qWarning() << "Invalid URL:" << url;
socket->disconnectFromHost();
return;
}
//Act as server is request are for local server
if ((url.host() == "") && (QFile(address).exists())) {
//qDebug( ) << __FILE__ << __FUNCTION__ << "Sending " << address;
QByteArray header;
QTextStream headerStream(&header, QIODevice::WriteOnly);
//Construct response header
headerStream << "HTTP/1.0 200 OK" << endl;
headerStream << "Server: gpsbook/" << qApp->applicationVersion() << endl;
headerStream << "Date: " << QDateTime::currentDateTime().toUTC().toString("ddd, dd MMM yyyy hh:mm:ss") << "GMT" << endl;
headerStream << "Content-Type: text/html; charset=utf-8" << endl;
headerStream << "Connection: close" << endl;
headerStream << "Pragma: no-cache" << endl;
headerStream << "Cache-Control: no-cache" << endl;
QFile file(address);
if (!file.open(QFile::ReadOnly | QFile::Text))
{
qWarning() << "Cannot open:" << address;
socket->disconnectFromHost();
return ;
}
QByteArray content;
QTextStream contentStream(&content, QIODevice::WriteOnly);
while (!file.atEnd()) {
contentStream << file.readLine() << endl;
}
headerStream << "Content-Length:" << content.size() << endl;
headerStream << "" << endl;
socket->write(header);
socket->write(content);
//qDebug( ) << __FILE__ << __FUNCTION__ << "File sent (" << content.size() << "bytes) :-)";
socket->disconnectFromHost();
return;
}
#if ( QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) )
// Some finction of QUrl have been deprecated
// This code is require for the internet browser and should be reviewed.
#else
#ifdef Q_OS_LINUX
//Remove advert to speedup development ;-)
if (url.toString().contains("googlesyndication") ||
url.toString().contains("yieldmanager.com")) {
socket->disconnectFromHost();
return;
}
#endif
qDebug( ) << __FILE__ << __FUNCTION__ << "URL: " << url.toString();
QString host = url.host();
int port = (url.port() < 0) ? 80 : url.port();
QByteArray req = url.encodedPath();
if (url.hasQuery())
req.append('?').append(url.encodedQuery());
requestLine = method + " " + req + " " + version + "\r\n";
requestData.prepend(requestLine);
QString key = host + ':' + QString::number(port);
QTcpSocket *proxySocket = socket->findChild<QTcpSocket*>(key);
if (proxySocket) {
proxySocket->setObjectName(key);
proxySocket->setProperty("url", url);
proxySocket->setProperty("requestData", requestData);
proxySocket->write(requestData);
} else {
proxySocket = new QTcpSocket(socket);
proxySocket->setObjectName(key);
proxySocket->setProperty("url", url);
//.........这里部分代码省略.........
示例10: DelegateMeTo
void QmitkMitkWorkbenchIntroPart::DelegateMeTo(const QUrl& showMeNext)
{
QString scheme = showMeNext.scheme();
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
QByteArray urlHostname = showMeNext.encodedHost();
QByteArray urlPath = showMeNext.encodedPath();
QByteArray dataset = showMeNext.encodedQueryItemValue("dataset");
QByteArray clear = showMeNext.encodedQueryItemValue("clear");
#else
QByteArray urlHostname = QUrl::toAce(showMeNext.host());
QByteArray urlPath = showMeNext.path().toLatin1();
QUrlQuery query(showMeNext);
QByteArray dataset = query.queryItemValue("dataset").toLatin1();
QByteArray clear = query.queryItemValue("clear").toLatin1();//showMeNext.encodedQueryItemValue("clear");
#endif
if (scheme.isEmpty()) MITK_INFO << " empty scheme of the to be delegated link" ;
// if the scheme is set to mitk, it is to be tested which action should be applied
if (scheme.contains(QString("mitk")) )
{
if(urlPath.isEmpty() ) MITK_INFO << " mitk path is empty " ;
// searching for the perspective keyword within the host name
if(urlHostname.contains(QByteArray("perspectives")) )
{
// the simplified method removes every whitespace
// ( whitespace means any character for which the standard C++ isspace() method returns true)
urlPath = urlPath.simplified();
QString tmpPerspectiveId(urlPath.data());
tmpPerspectiveId.replace(QString("/"), QString("") );
QString perspectiveId = tmpPerspectiveId;
// is working fine as long as the perspective id is valid, if not the application crashes
GetIntroSite()->GetWorkbenchWindow()->GetWorkbench()->ShowPerspective(perspectiveId, GetIntroSite()->GetWorkbenchWindow() );
// search the Workbench for opened StdMultiWidgets to ensure the focus does not stay on the welcome screen and is switched to
// a render window editor if one available
ctkPluginContext* context = QmitkExtApplicationPlugin::GetDefault()->GetPluginContext();
mitk::IDataStorageService* service = NULL;
ctkServiceReference serviceRef = context->getServiceReference<mitk::IDataStorageService>();
if (serviceRef) service = context->getService<mitk::IDataStorageService>(serviceRef);
if (service)
{
berry::IEditorInput::Pointer editorInput(new mitk::DataStorageEditorInput( service->GetActiveDataStorage() ));
// search for opened StdMultiWidgetEditors
berry::IEditorPart::Pointer editorPart = GetIntroSite()->GetPage()->FindEditor( editorInput );
// if an StdMultiWidgetEditor open was found, give focus to it
if(editorPart)
{
GetIntroSite()->GetPage()->Activate( editorPart );
}
}
}
}
// if the scheme is set to http, by default no action is performed, if an external webpage needs to be
// shown it should be implemented below
else if (scheme.contains(QString("http")) )
{
QDesktopServices::openUrl(showMeNext);
// m_view->load( ) ;
}
else if(scheme.contains("qrc"))
{
m_view->load(showMeNext);
}
}