简述
QNetworkProxy类提供了一个网络层代理。
QNetworkProxy提供了配置网络层代理支持Qt网络类的方法。目前支持的类有QAbstractSocket、QTcpSocket、QUdpSocket、QTcpServer和QNetworkAccessManager。
介绍
代理被设计的尽可能透明。也就是说,你现有的网络应用程序使用下面的代码就会自动支持网络代理。
QNetworkProxy proxy;
proxy.setType(QNetworkProxy::Socks5Proxy);
proxy.setHostName("proxy.example.com");
proxy.setPort(1080);
proxy.setUser("username");
proxy.setPassword("password");
QNetworkProxy::setApplicationProxy(proxy);
为个别套接字设置代理的另一种方法是使用QAbstractSocket::setProxy()和QTcpServer::setProxy()。这种情况下,可以使用以下方式禁用代理:
serverSocket->setProxy(QNetworkProxy::NoProxy);
网络请求
以HTTP/HTTPS为例,我们经常需要进行抓包来分析数据
下面,通过调用天天动听的API来获取歌曲的信息,接口的使用不再赘述。
QNetworkAccessManager networkAccessManager;
QUrl url("http://search.dongting.com/song/search/old");
// 设置请求参数
QUrlQuery query;
query.addQueryItem("q"