QT HTTPS 代码登陆SVN

3 篇文章 0 订阅

1实现目标

已知自己的SVN账号密码,在QT中使用代码登陆SVN,可以下载需要的文件如ZIP压缩包

2 OpenSSL

QT 需要支持OpenSSL 网上有相关配置教程

3 关键代码

QNetworkAccessManager

m_NetManager = new QNetworkAccessManager(this);          //新建QNetworkAccessManager对象
    connect(m_NetManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));//关联信号和槽
    connect(m_NetManager,SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)),this, SLOT(authRequiredReply(QNetworkReply*,QAuthenticator*)));
    login(m_pConfig->mURL);

login

QNetworkReply * MainWindow::login(QString destUrl)
{

    QNetworkRequest network_request;

    //设置SSL,HTTPS协议需要SSL证书
    QSslConfiguration m_sslConfig = QSslConfiguration::defaultConfiguration();
    m_sslConfig.setPeerVerifyMode(QSslSocket::VerifyNone);
    m_sslConfig.setProtocol(QSsl::TlsV1_2);
    network_request.setSslConfiguration(m_sslConfig);

    network_request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
    network_request.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
    //network_request.setHeader(QNetworkRequest::CookieHeader,var);
    network_request.setUrl(QUrl(destUrl));

    return  m_NetManager->get(network_request);
    //return m_NetManager->post(network_request,dataArray);
}

authRequiredReply

void MainWindow::authRequiredReply(QNetworkReply *reply, QAuthenticator *auth)
{
    QString username = "your username";
    QString password = "your password";
    if (username.isEmpty() || password.isEmpty()) {
        return ;
    }
    auth->setUser(username);
    auth->setPassword(password);
}

4 效果

服务器反馈如下,说明已经登入成功

<!DOCTYPE html

  PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'

  'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>

<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">

<head>

<link rel="icon" href="/favicon.ico" type="image/x-icon" />

<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />

<meta content="0;URL=/svn/" http-equiv="refresh" />

<title>VisualSVN Server</title>

</head>

<body>

<h1>Welcome to VisualSVN Server!</h1>

<p><a href="/svn/">Repositories</a></p>

</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值