Анализ URL-адресов в Интернете глобальных и вспомогательных служб

Когда клиент отправляет запрос на интернет-сервер, вы можете использовать один из глобальных анализаторов URL-адресов для извлечения сведений о клиенте. Вспомогательные функции предоставляют другие функции Интернета.

Глобальные объекты разбора URL-адресов

Имя Описание
AfxParseURL Анализирует строку URL-адреса и возвращает тип службы и ее компоненты.
AfxParseURLEx Анализирует строку URL-адреса и возвращает тип службы и его компонентов, а также предоставляет имя пользователя и пароль.

Другие вспомогательные интернет-службы

Имя Описание
AfxThrowInternetException Создает исключение, связанное с подключением к Интернету.
AfxGetInternetHandleType Определяет тип дескриптора Интернета.

AfxParseURL

Этот глобальный используется в CInternetSession::OpenURL.

BOOL AFXAPI AfxParseURL(
    LPCTSTR pstrURL,
    DWORD& dwServiceType,
    CString& strServer,
    CString& strObject,
    INTERNET_PORT& nPort);

Параметры

pstrURL
Указатель на строку, содержащую URL-адрес для синтаксического анализа.

dwServiceType
Указывает тип службы Интернета. Возможны следующие значения:

  • AFX_INET_SERVICE_FTP

  • AFX_INET_SERVICE_HTTP

  • AFX_INET_SERVICE_HTTPS

  • AFX_INET_SERVICE_GOPHER

  • AFX_INET_SERVICE_FILE

  • AFX_INET_SERVICE_MAILTO

  • AFX_INET_SERVICE_NEWS

  • AFX_INET_SERVICE_NNTP

  • AFX_INET_SERVICE_TELNET

  • AFX_INET_SERVICE_WAIS

  • AFX_INET_SERVICE_MID

  • AFX_INET_SERVICE_CID

  • AFX_INET_SERVICE_PROSPERO

  • AFX_INET_SERVICE_AFS

  • AFX_INET_SERVICE_UNK

strServer
Первый сегмент URL-адреса после типа службы.

strObject
Объект, на который ссылается URL-адрес (может быть пустым).

nPort
Определяется из частей URL-адреса сервера или объекта, если он существует.

Возвращаемое значение

Ненулевое значение, если URL-адрес был успешно проанализирован; в противном случае значение 0, если оно пусто или не содержит известный тип службы Интернета.

Замечания

Он анализирует строку URL-адреса и возвращает тип службы и его компоненты.

Например, AfxParseURL анализирует URL-адреса формы service://server/dir/dir/object.ext:port и возвращает его компоненты, хранящиеся следующим образом:

strServer == "server"

strObject == "/dir/dir/object/object.ext"

nPort == #port

dwServiceType == #service

Примечание.

Чтобы вызвать эту функцию, проект должен включать AFXINET.H.

Требования

Заголовок afxinet.h

AfxParseURLEx

Эта глобальная функция является расширенной версией AfxParseURL и используется в CInternetSession::OpenURL.

BOOL AFXAPI AfxParseURLEx(
    LPCTSTR pstrURL,
    DWORD& dwServiceType,
    CString& strServer,
    CString& strObject,
    INTERNET_PORT& nPort,
    CString& strUsername,
    CString& strPassword,
    DWORD dwFlags = 0);

Параметры

pstrURL
Указатель на строку, содержащую URL-адрес для синтаксического анализа.

dwServiceType
Указывает тип службы Интернета. Возможны следующие значения:

  • AFX_INET_SERVICE_FTP

  • AFX_INET_SERVICE_HTTP

  • AFX_INET_SERVICE_HTTPS

  • AFX_INET_SERVICE_GOPHER

  • AFX_INET_SERVICE_FILE

  • AFX_INET_SERVICE_MAILTO

  • AFX_INET_SERVICE_NEWS

  • AFX_INET_SERVICE_NNTP

  • AFX_INET_SERVICE_TELNET

  • AFX_INET_SERVICE_WAIS

  • AFX_INET_SERVICE_MID

  • AFX_INET_SERVICE_CID

  • AFX_INET_SERVICE_PROSPERO

  • AFX_INET_SERVICE_AFS

  • AFX_INET_SERVICE_UNK

strServer
Первый сегмент URL-адреса после типа службы.

strObject
Объект, на который ссылается URL-адрес (может быть пустым).

nPort
Определяется из частей URL-адреса сервера или объекта, если он существует.

strUsername
Ссылка на CString объект, содержащий имя пользователя.

strPassword
Ссылка на CString объект, содержащий пароль пользователя.

dwFlags
Флаги, управляющие анализом URL-адреса. Может быть сочетанием следующих значений:

Значение Значение
ICU_DECODE Преобразуйте escape-последовательности %XX в символы.
ICU_NO_ENCODE Не преобразуйте небезопасные символы в escape-последовательность.
ICU_NO_META Не удаляйте мета последовательности (например, "\ ." и "\ ..") из URL-адреса.
ICU_ENCODE_SPACES_ONLY Кодируйте только пробелы.
ICU_BROWSER_MODE Не кодируйте или декодируйте символы после "#" или "" и не удаляйте конечные пробелы после "". Если это значение не указано, весь URL-адрес закодирован и удаляется конечный пробел.

Если используется значение по умолчанию MFC, которое не является флагами, функция преобразует все небезопасные символы и мета последовательности (например, \.,\ .., и \...) в escape-последовательности.

Возвращаемое значение

Ненулевое значение, если URL-адрес был успешно проанализирован; в противном случае значение 0, если оно пусто или не содержит известный тип службы Интернета.

Замечания

Он анализирует строку URL-адреса и возвращает тип службы и его компоненты, а также предоставляет имя и пароль пользователя. Флаги указывают, как обрабатываются небезопасные символы.

Примечание.

Чтобы вызвать эту функцию, проект должен включать AFXINET.H.

Требования

Заголовок afxinet.h

AfxGetInternetHandleType

Используйте эту глобальную функцию для определения типа дескриптора Интернета.

Синтаксис

DWORD AFXAPI AfxGetInternetHandleType(  HINTERNET hQuery );

Параметры

hQuery
Дескриптор запроса к Интернету.

Возвращаемое значение

Любой из типов служб Интернета, определенных WININET.H. См. раздел "Примечания" для списка этих служб Интернета. Если дескриптор имеет значение NULL или не распознан, функция возвращает AFX_INET_SERVICE_UNK.

Замечания

Следующий список включает возможные типы Интернета, возвращаемые AfxGetInternetHandleType.

  • INTERNET_HANDLE_TYPE_INTERNET

  • INTERNET_HANDLE_TYPE_CONNECT_FTP

  • INTERNET_HANDLE_TYPE_CONNECT_GOPHER

  • INTERNET_HANDLE_TYPE_CONNECT_HTTP

  • INTERNET_HANDLE_TYPE_FTP_FIND

  • INTERNET_HANDLE_TYPE_FTP_FIND_HTML

  • INTERNET_HANDLE_TYPE_FTP_FILE

  • INTERNET_HANDLE_TYPE_FTP_FILE_HTML

  • INTERNET_HANDLE_TYPE_GOPHER_FIND

  • INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML

  • INTERNET_HANDLE_TYPE_GOPHER_FILE

  • INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML

  • INTERNET_HANDLE_TYPE_HTTP_REQUEST

Примечание.

Чтобы вызвать эту функцию, проект должен включать AFXINET.H.

Требования

Заголовок: afxinet.h

AfxThrowInternetException

Создает исключение Из Интернета.

Синтаксис

   void AFXAPI AfxThrowInternetException(  DWORD dwContext,  DWORD dwError = 0 );

Параметры

Dwcontext
Идентификатор контекста для операции, вызвавшей ошибку. Значение по умолчанию dwContext указывается первоначально в CInternetSession и передается в классы, производные от CInternet Подключение ion- и CInternetFile. Для определенных операций, выполняемых в соединении или файле, обычно переопределяется значение по умолчанию с помощью dwContext собственного. Затем это значение возвращается в CInternetSession::OnStatusCallback , чтобы определить состояние конкретной операции.

dwError
Ошибка, вызвавшей исключение.

Замечания

Вы несете ответственность за определение причины на основе кода ошибки операционной системы.

Примечание.

Чтобы вызвать эту функцию, проект должен включать AFXINET.H.

Требования

Заголовок: afxinet.h

См. также

Макросы и глобальные
Класс CInternetException
AfxParseURL