首页 > 解决方案 > 尝试使用 MFC 运行带参数的 PHP 文件

问题描述

我正在尝试这个 MFC 代码:

CString strURL = _T("https://www.website-to-use.co.uk/file.php?");
strURL.AppendFormat(_T("mwblang=%d"), theApp.GetForeignLanguageGroupCachedLanguageID());
strURL.AppendFormat(_T("&guilang=%d"), theApp.GetProgramLanguage());
strURL.AppendFormat(_T("&flg=%d"), theApp.GetForeignLanguageGroupMenuID() != ID_OPTIONS_GROUP_LANGUAGE_NONE);

InternetGoOnline((LPTSTR)(LPCTSTR)strURL, GetSafeHwnd(), 0);

它不工作。如果我使用浏览器访问相同的链接(当然是正确的详细信息),那么它会更新我的数据库。但是尝试从我的 MFC 应用程序运行它,没有任何反应

标签: urlvisual-c++mfc

解决方案


这似乎有效:

CString strURL = _T("https://website-to-use.co.uk/file.php?");
strURL.AppendFormat(_T("mwblang=%d"), theApp.GetForeignLanguageGroupCachedLanguageID());
strURL.AppendFormat(_T("&guilang=%d"), theApp.GetProgramLanguage());
strURL.AppendFormat(_T("&flg=%d"), theApp.GetForeignLanguageGroupMenuID() != ID_OPTIONS_GROUP_LANGUAGE_NONE);

if (InternetGoOnline(strURL.GetString(), GetSafeHwnd(), 0))
{
    CInternetSession    iSession;
    CHttpFile* pWebFile = nullptr;

    pWebFile = (CHttpFile*)iSession.OpenURL(strURL, 1,
        INTERNET_FLAG_SECURE | INTERNET_FLAG_TRANSFER_BINARY | INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_RELOAD);

    if (pWebFile != nullptr)
    {

        pWebFile->Close();
        delete pWebFile;
    }
    iSession.Close();
}

推荐阅读