我无法从 iPhone 上的应用程序嗅探 QNetworkAccessManager 请求

问题描述

我按照手册在mac上设置了Charles。我在 iPhone 上配置了代理,在 iPhone 上安装了证书。从视觉上看,除了我的应用程序的流量外,Charles 会显示来自电话的流量。更准确地说,如果流量来自应用程序中的 WebView,则它是可见的。如果流量是由 QNetworkAccessManager 生成的,那么它就不存在。尽管应用程序运行良好,但它还是会从服务器接收数据。

可能有什么问题?

使用过的 SSL 库

ssllibraryBuildVersionString:  OpenSSL 1.1.1d  10 Sep 2019
ssllibraryVersionString:  OpenSSL 1.1.1d  10 Sep 2019

QNetworkAccessManager 是这样使用的:

    m_networkManager = QSharedPointer<QNetworkAccessManager>( new QNetworkAccessManager());
    VERIFY(connect(m_networkManager.data(),&QNetworkAccessManager::finished,this,&Client::onNetworkAccessManagerFinished));
    

...
    qnetworkrequest request(url);
    request.setRawHeader("Content-Type","application/x-www-form-urlencoded");
    request.setRawHeader("Origin","foobar.myapp.com");
    if (!userAgentHeader().isEmpty())
        request.setHeader(qnetworkrequest::UserAgentHeader,userAgentHeader());
    QNetworkReply* result = m_networkManager->get(request);
 
...
    qnetworkrequest request(urlBase() + path);
    request.setRawHeader("Content-Type","application/json");
    request.setRawHeader("Accept-Encoding","gzip,deflate");
    request.setRawHeader("Origin",userAgentHeader());

    QNetworkReply* result = m_networkManager->post(request,data);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)