为什么http和socket设置同样的代理,http成功了,而socket每次连接都超时?
1条回答 默认 最新
m0_54204465 2023-01-31 20:34关注有可能是因为socket不支持代理,或者代理设置不正确导致的。请确认socket的代理设置是否与http的代理设置相同,是否正确配置代理。下面是一个示例,说明如何在Qt中设置HTTP和socket代理。
HTTP代理:可以使用QNetworkAccessManager类。如下所示:
QNetworkAccessManager *manager = new QNetworkAccessManager(this); QNetworkProxy proxy; proxy.setType(QNetworkProxy::HttpProxy); proxy.setHostName("proxy.example.com"); proxy.setPort(8080); manager->setProxy(proxy);Socket代理:可以使用QTcpSocket类。如下所示:
QTcpSocket *socket = new QTcpSocket(this); QNetworkProxy proxy; proxy.setType(QNetworkProxy::Socks5Proxy); proxy.setHostName("proxy.example.com"); proxy.setPort(1080); socket->setProxy(proxy);如果在HTTP请求中设置代理成功,但在socket请求中失败,可能是因为代理需要用户名和密码,但这些信息没有设置到代理设置中。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报