CInternetSession::OpenURL
更新 : 2007 年 11 月
指定された要求を HTTP サーバーに送信し、その要求と一緒に RFC822、MIME、または HTTP ヘッダーを送信するようにクライアントが指定できるようにします。
CStdioFile* OpenURL(
LPCTSTR pstrURL,
DWORD_PTR dwContext = 1,
DWORD dwFlags = INTERNET_FLAG_TRANSFER_ASCII,
LPCTSTR pstrHeaders = NULL,
DWORD dwHeadersLength = 0
);
パラメータ
pstrURL
読み取りを開始する URL の名前へのポインタ。file:、ftp:、gopher:、または http: で始まる URL だけがサポートされています。pszURL が NULL の場合は、ASSERTS になります。dwContext
コールバックで返されるハンドルと一緒に渡されるアプリケーション定義の値。dwFlags
接続の処理方法を示すフラグ。有効なフラグの詳細については、後の「解説」を参照してください。有効なフラグは、次のとおりです。INTERNET_FLAG_TRANSFER_ASCII 既定値です。ファイルを ASCII テキストとして転送します。
INTERNET_FLAG_TRANSFER_BINARY ファイルをバイナリ ファイルとして転送します。
INTERNET_FLAG_RELOAD データがローカルにキャッシュされている場合でも、回線からデータを取得します。
INTERNET_FLAG_DONT_CACHE ローカル コンピュータまたはゲートウェイ サーバーのいずれにもデータをキャッシュしません。
INTERNET_FLAG_SECURE このフラグは、HTTP 要求に対してだけ適用されます。SSL (Secure Sockets Layer) または PCT を使用した回線上の安全なトランザクションを要求します。
INTERNET_OPEN_FLAG_USE_EXISTING_CONNECT OpenUrl によって生成される新しい接続要求ごとに新しいセッションを作成するのではなく、可能な場合は、サーバーへの既存の接続を再利用します。
INTERNET_FLAG_PASSIVE FTP サイトで使用します。パッシブ FTP を使用します。OpenURL の CInternetConnection と一緒に使用します。
pstrHeaders
HTTP サーバーに送信されるヘッダーを含んでいる文字列へのポインタ。dwHeadersLength
追加のヘッダーの長さ (文字数)。この値が -1L で pstrHeaders が NULL 以外の場合、pstrHeaders は 0 で終了するものと見なされ、長さが計算されます。
戻り値
FTP、GOPHER、HTTP、FILE の各インターネット サービスの場合だけファイル ハンドルを返します。解析に失敗した場合は NULL を返します。
OpenURL が返すポインタは、pszURL のサービスの種類に依存します。OpenURL が返す可能性のあるポインタを次の表に示します。
URL の種類 |
戻り値 |
---|---|
file:// |
CStdioFile* |
http:// |
CHttpFile* |
gopher:// |
CGopherFile* |
ftp:// |
CInternetFile* |
解説
パラメータ dwFlags には INTERNET_FLAG_TRANSFER_ASCII または INTERNET_FLAG_TRANSFER_BINARY のいずれかを含める必要がありますが、両方を含めることはできません。その他のフラグはビットごとの OR (|) 演算子を使って組み合わせることができます。
Win32 関数の InternetOpenURL をラップする OpenURL は、インターネット サーバーからのデータのダウンロード、取得、および読み込みのみをサポートします。OpenURL では、リモート ファイルを操作できないので、CInternetConnection オブジェクトは必要ありません。
ファイルへの書き込みなど、接続に固有 (プロトコル固有) の関数を使用するには、セッションを開き、特定の種類の接続を開き、その接続を使用して必要なモードでファイルを開きます。接続に固有の関数の詳細については、CInternetConnection を参照してください。
例外
このメソッドは、CInternetException* 型の例外をスローできます。
必要条件
ヘッダー : afxinet.h
参照
参照
CInternetSession::GetFtpConnection
CInternetSession::GetHttpConnection