0

代码有什么问题:

如果我使用系统代理,则显示的错误是“连接被拒绝”,如果我使用手动代理(代理地址相同),则显示的错误是“找不到主机”</p>

代理服务器是 squid,代理地址:172.16.28.11 和端口:3128

此外,它也不适用于 localhost 代理,例如使用“tor”或动态端口转发创建的代理!

if(settDialog.ui->no_proxy->isChecked())
{
    QNetworkProxyFactory::setUseSystemConfiguration (false);
    QNetworkProxy::setApplicationProxy(QNetworkProxy::NoProxy);
}
else if(settDialog.ui->use_s_proxy->isChecked())
{
    QNetworkProxyFactory::setUseSystemConfiguration (true);
}
else if(settDialog.ui->man_proxy->isChecked())
{
    QNetworkProxyFactory::setUseSystemConfiguration (false);
    proxy.setHostName(settDialog.ui->proxy_addr->text());
    proxy.setPort(settDialog.ui->port_num->value());
    if(settDialog.ui->proxyType->currentIndex()==0)
        proxy.setType(QNetworkProxy::HttpProxy);
    else if(settDialog.ui->proxyType->currentIndex()==1)
        proxy.setType(QNetworkProxy::Socks5Proxy);
    else if(settDialog.ui->proxyType->currentIndex()==2)
        proxy.setType(QNetworkProxy::FtpCachingProxy);
    proxy.setHostName(settDialog.ui->username->text());
    proxy.setPassword(settDialog.ui->pwd->text());
    QNetworkProxy::setApplicationProxy(proxy);
}
4

1 回答 1

2

我可能过于简化了事情,但这看起来像是一个简单的错误 API 调用。

proxy.setHostName是你定义代理服务器主机名的地方,你通过proxy.setUser API设置用户名,即:

proxy.setUser(settDialog.ui->username->text());
于 2012-09-21T16:27:01.570 回答