MFCでHTTPS通信 [プログラミング]
今度は、MFCを使ってHTTPS通信してみます。
とはいえ、CInternetSession
クラスのOpenURL()
メソッドを使うのなら、HTTPでもHTTPSでも全く同じです。
const CString urlStr = _T("https://~~"); try { CInternetSession session; std::auto_ptr<CStdioFile> file(session.OpenURL(urlStr); if (file.get() == NULL) return; // 失敗 CString str; while (file->ReadString(str)) { // @@@ 取得したデータを、どうにかする @@@ } file->Close(); } catch (CInternetException* e) { e->Delete(); }
GetHttpConnection()
メソッドを使う方法だと、いくつか設定が必要になります。
const CString host = _T("~~~"); // ホスト const CString path = _T("~~~"); // パス try { CInternetSession session; const DWORD flag = INTERNET_FLAG_SECURE; std::auto_ptr<CHttpConnection> conn(session.GetHttpConnection(host, flag)); std::auto_ptr<CHttpFile< file(conn->OpenRequest(CHttpConnection::HTTP_VERB_GET, path, NULL, 1, NULL, NULL, INTERNET_FLAG_SECURE)); if (!file->SendRequest()) return; // 失敗 CString str; while (file->ReadString(str)) { // @@@ 取得したデータを、どうにかする @@@ } file->Close(); conn->Close(); } catch (CInternetException* e) { e->Delete(); }
GetHttpConnection()
、OpenRequest()
にフラグINTERNET_FLAG_SECURE
を追加しています。
それだけです。
正式じゃない証明書(俗に言う「オレオレ証明書」)を使っているサイトと通信する場合は、フラグにINTERNET_FLAG_IGNORE_CERT_CN_INVALID
とかも追加しないといけないみたいですが。
今日の二冊 | |
|
タグ:VisualC++
2009-09-17 07:32
nice!(0)
コメント(0)
トラックバック(0)
コメント 0