Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
A HTTP-kiszolgálón található fájlok lekérésére és olvasására használható funkciókat biztosítja.
Szemantika
class CHttpFile : public CInternetFile
Tagok
Védett konstruktorok
| Név | Description |
|---|---|
| CHttpFile::CHttpFile | Létrehoz egy objektumot CHttpFile . |
Nyilvános metódusok
| Név | Description |
|---|---|
| CHttpFile::AddRequestHeaders | Fejléceket ad hozzá a HTTP-kiszolgálónak küldött kérelemhez. |
| CHttpFile::EndRequest | A SendRequestEx tagfüggvénnyel egy HTTP-kiszolgálónak küldött kérés befejezése. |
| CHttpFile::GetFileURL | Lekéri a megadott fájl URL-címét. |
| CHttpFile::GetObject | Lekéri az ige célobjektumát egy HTTP-kiszolgálóra irányuló kérésben. |
| CHttpFile::GetVerb | Lekéri a HTTP-kiszolgálóra irányuló kérésben használt igét. |
| CHttpFile::QueryInfo | A HTTP-kiszolgáló válasz- vagy kérésfejléceit adja vissza. |
| CHttpFile::QueryInfoStatusCode | Lekéri a HTTP-kéréshez társított állapotkódot, és elhelyezi a megadott dwStatusCode paraméterben. |
| CHttpFile::SendRequest | Kérést küld egy HTTP-kiszolgálónak. |
| CHttpFile::SendRequestEx | Kérést küld egy HTTP-kiszolgálónak a Write vagy WriteString metódusával CInternetFile. |
Megjegyzések
Ha az internetes munkamenet adatokat olvas be EGY HTTP-kiszolgálóról, létre kell hoznia egy példányt.CHttpFile
Ha többet szeretne megtudni arról, hogyan CHttpFile működik a többi MFC internetes osztály, olvassa el az Internet Programming with WinInet című cikket.
Öröklési hierarchia
CHttpFile
Requirements
Fejléc: afxinet.h
CHttpFile::AddRequestHeaders
Hívja meg ezt a tagfüggvényt, hogy adjon hozzá egy vagy több HTTP-kérelemfejlécet a HTTP-kérelem leíróhoz.
BOOL AddRequestHeaders(
LPCTSTR pstrHeaders,
DWORD dwFlags = HTTP_ADDREQ_FLAG_ADD_IF_NEW,
int dwHeadersLen = -1);
BOOL AddRequestHeaders(
CString& str,
DWORD dwFlags = HTTP_ADDREQ_FLAG_ADD_IF_NEW);
Paraméterek
pstrHeaders
A kéréshez fűzendő fejléceket vagy fejléceket tartalmazó sztringre mutató mutató. Minden fejlécet CR/LF párnak kell leállnia.
dwFlags
Módosítja az új fejlécek szemantikáját. A következők egyike lehet:
HTTP_ADDREQ_FLAG_COALESCE Azonos nevű fejléceket egyesít a jelölővel, hogy hozzáadja a talált első fejlécet a következő fejléchez. Az "Elfogadás: szöveg/*" és az "Elfogadás: hang/*" kifejezés például az "Elfogadás: szöveg/*, hang/*" fejléc létrehozását eredményezi. A hívó alkalmazás feladata, hogy egységes sémát biztosítson a szenes vagy különálló fejlécekkel küldött kérelmek által fogadott adatok tekintetében.
HTTP_ADDREQ_FLAG_REPLACE Eltávolítja és hozzáadja az aktuális fejlécet. Az élőfej neve az aktuális fejléc eltávolítására szolgál, a teljes érték pedig az új fejléc hozzáadására szolgál. Ha a fejléc értéke üres, és a fejléc megtalálható, az el lesz távolítva. Ha nem üres, a fejléc értéke lecserélődik.
HTTP_ADDREQ_FLAG_ADD_IF_NEW Csak akkor adja hozzá a fejlécet, ha még nem létezik. Ha létezik ilyen, a program hibát ad vissza.
HTTP_ADDREQ_FLAG_ADD CSERE funkcióval használható. Hozzáadja a fejlécet, ha nem létezik.
dwHeadersLen
A pstrHeaders hossza karakterben. Ha ez -1L, akkor a pstrHeaders értéke nullával végződik, és a hossz kiszámítása történik.
Str
Hivatkozás a hozzáadni kívánt kérelemfejlécet vagy fejléceket tartalmazó CString-objektumra .
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0. Ha a hívás sikertelen, a Rendszer meghívhatja a Win32 GetLastError függvényt a hiba okának meghatározásához.
Megjegyzések
AddRequestHeaders további, szabad formátumú fejléceket fűz a HTTP-kérelem leíróhoz. Kifinomult ügyfeleknek szánták, akiknek részletes ellenőrzésre van szükségük a HTTP-kiszolgálónak küldött pontos kérés felett.
Megjegyzés:
Az alkalmazás több fejlécet is átadhat a pstrHeadersben vagy str-ben egy AddRequestHeaders híváshoz HTTP_ADDREQ_FLAG_ADD vagy HTTP_ADDREQ_FLAG_ADD_IF_NEW használatával. Ha az alkalmazás megpróbál eltávolítani vagy lecserélni egy fejlécet HTTP_ADDREQ_FLAG_REMOVE vagy HTTP_ADDREQ_FLAG_REPLACE használatával, csak egy fejléc adható meg az lpszHeadersben.
CHttpFile::CHttpFile
Ez a tagfüggvény egy CHttpFile objektum létrehozásához van meghívva.
CHttpFile(
HINTERNET hFile,
HINTERNET hSession,
LPCTSTR pstrObject,
LPCTSTR pstrServer,
LPCTSTR pstrVerb,
DWORD_PTR dwContext);
CHttpFile(
HINTERNET hFile,
LPCTSTR pstrVerb,
LPCTSTR pstrObject,
CHttpConnection* pConnection);
Paraméterek
hFile
Egy internetes fájl leírója.
hSession
Egy internetes munkamenet leírója.
pstrObject
Az objektumot tartalmazó CHttpFile sztringre mutató mutató.
pstrServer
A kiszolgáló nevét tartalmazó sztringre mutató mutató.
pstrVerb
Mutató egy sztringre, amely tartalmazza a kérés küldésekor használni kívánt metódust. Lehet POST, HEAD vagy GET.
dwContext
Az objektum környezeti azonosítója CHttpFile . A paraméterről további információt a Megjegyzésekben talál.
pConnection
Egy CHttpConnection-objektumra mutató mutató.
Megjegyzések
Soha ne hozzon létre közvetlenül objektumot CHttpFile ; ehelyett hívja meg a CInternetSession::OpenURL vagy CHttpConnection::OpenRequest parancsot.
Az MFC az alapértelmezett értéket dwContext az CHttpFile objektumot létrehozó CInternetSession objektumból küldi el az CHttpFile objektumnak. Amikor meghív CInternetSession::OpenURL vagy CHttpConnection létrehoz egy objektumot CHttpFile , felülbírálhatja az alapértelmezett értéket, hogy a környezetazonosítót egy ön által választott értékre állítsa. A rendszer visszaadja a környezetazonosítót a CInternetSession::OnStatusCallback fájlnak, hogy állapotot adjon meg azon az objektumon, amellyel azonosítva van. A környezetazonosítóval kapcsolatos további információkért tekintse meg az internet első lépései: WinInet című cikket.
CHttpFile::EndRequest
Hívja meg ezt a tagfüggvényt egy HTTP-kiszolgálónak küldött kérés befejezéséhez a SendRequestEx tagfüggvénnyel.
BOOL EndRequest(
DWORD dwFlags = 0,
LPINTERNET_BUFFERS lpBuffIn = NULL,
DWORD_PTR dwContext = 1);
Paraméterek
dwFlags
A műveletet leíró jelzők. A megfelelő jelzők listáját a HttpEndRequest a Windows SDK-ban találja.
lpBuffIn
Mutasson egy inicializált INTERNET_BUFFERS , amely a művelethez használt bemeneti puffert írja le.
dwContext
A művelet környezeti azonosítója CHttpFile . A paraméterről további információt a Megjegyzésekben talál.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0. Ha a hívás sikertelen, állapítsa meg a hiba okát a kidobott CInternetException objektum vizsgálatával.
Megjegyzések
A dwContext alapértelmezett értékét az MFC küldi el az CHttpFile objektumnak az objektumot létrehozó CHttpFileCInternetSession objektumból. Amikor meghívja a CInternetSession::OpenURL vagy CHttpConnection parancsot egy CHttpFile objektum létrehozásához, felülbírálhatja az alapértelmezett beállítást, hogy a környezetazonosítót egy ön által választott értékre állítsa. A rendszer visszaadja a környezetazonosítót a CInternetSession::OnStatusCallback fájlnak, hogy állapotot adjon meg azon az objektumon, amellyel azonosítva van. A környezetazonosítóval kapcsolatos további információkért tekintse meg az Internet első lépései: WinInet című cikket.
CHttpFile::GetFileURL
Hívja meg ezt a tagfüggvényt a HTTP-fájl nevének URL-címként való lekéréséhez.
virtual CString GetFileURL() const;
Visszaadott érték
A fájlhoz társított erőforrásra hivatkozó URL-címet tartalmazó CString-objektum .
Megjegyzések
Ezt a tagfüggvényt csak a SendRequest sikeres hívása vagy az CHttpFileOpenURL által sikeresen létrehozott objektum esetén használja.
CHttpFile::GetObject
Hívja meg ezt a tagfüggvényt a hozzá társított objektum nevének lekéréséhez CHttpFile.
CString GetObject() const;
Visszaadott érték
Az objektum nevét tartalmazó CString objektum.
Megjegyzések
Ezt a tagfüggvényt csak a SendRequest sikeres hívása vagy az CHttpFileOpenURL által sikeresen létrehozott objektum esetén használja.
CHttpFile::GetVerb
Hívja meg ezt a tagfüggvényt az ehhez CHttpFiletársított HTTP-parancs (vagy metódus) lekéréséhez.
CString GetVerb() const;
Visszaadott érték
A HTTP-ige (vagy metódus) nevét tartalmazó CString objektum.
Megjegyzések
Ezt a tagfüggvényt csak a SendRequest sikeres hívása vagy az CHttpFileOpenURL által sikeresen létrehozott objektum esetén használja.
CHttpFile::QueryInfo
Hívja meg ezt a tagfüggvényt, hogy válasz- vagy kérésfejléceket küldjön vissza egy HTTP-kérésből.
BOOL QueryInfo(
DWORD dwInfoLevel,
LPVOID lpvBuffer,
LPDWORD lpdwBufferLength,
LPDWORD lpdwIndex = NULL) const;
BOOL QueryInfo(
DWORD dwInfoLevel,
CString& str,
LPDWORD dwIndex = NULL) const;
BOOL QueryInfo(
DWORD dwInfoLevel,
SYSTEMTIME* pSysTime,
LPDWORD dwIndex = NULL) const;
Paraméterek
dwInfoLevel
A lekérdezéshez tartozó attribútum és a kért információ típusát meghatározó alábbi jelzők kombinációja:
HTTP_QUERY_CUSTOM Megkeresi a fejléc nevét, és visszaadja ezt az értéket az lpvBufferben a kimeneten. HTTP_QUERY_CUSTOM helyességi értéket ad, ha a fejléc nem található.
HTTP_QUERY_FLAG_REQUEST_HEADERS Az alkalmazás általában lekérdezi a válaszfejléceket, de az alkalmazás ezzel a jelzővel is lekérdezheti a kérésfejléceket.
HTTP_QUERY_FLAG_SYSTEMTIME Azon fejlécek esetében, amelyeknek az értéke dátum/idő sztring (például "Last-Modified-Time"), ez a jelölő a fejléc értékét egy standard Win32 SYSTEMTIME-struktúraként adja vissza, amely nem követeli meg az alkalmazástól az adatok elemzését. Ha ezt a jelzőt használja, érdemes lehet a
SYSTEMTIMEfüggvény felülbírálását használni.HTTP_QUERY_FLAG_NUMBER Azon fejlécek esetében, amelyek értéke egy szám , például az állapotkód, ez a jelző 32 bites számként adja vissza az adatokat.
A lehetséges értékek listáját a Megjegyzések szakaszban találja.
lpvBuffer
Az információt fogadó puffer mutatója.
lpdwBufferLength
Bejegyzéskor ez az adatpuffer hosszát tartalmazó értékre mutat karakterek vagy bájtok számában. Erről a paraméterről részletesebb információt a Megjegyzések szakaszban talál.
lpdwIndex
Mutató egy nulla alapú fejlécindexhez. Null érték is lehet. Ezzel a jelzővel több, azonos nevű fejlécet is számba lehet adni. Bemenetkor az lpdwIndex a visszaadni kívánt fejléc indexét jelzi. Kimeneten az lpdwIndex a következő fejléc indexét jelzi. Ha a következő index nem található, ERROR_HTTP_HEADER_NOT_FOUND lesz visszaadva.
Str
Hivatkozás a visszaadott adatokat fogadó CString objektumra.
dwIndex
Indexérték. Lásd: lpdwIndex.
pSysTime
Egy Win32 SYSTEMTIME-struktúra mutatója.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0. Ha a hívás sikertelen, a Rendszer meghívhatja a Win32 GetLastError függvényt a hiba okának meghatározásához.
Megjegyzések
Ezt a tagfüggvényt csak a SendRequest sikeres hívása vagy az CHttpFileOpenURL által sikeresen létrehozott objektum esetén használja.
A következő adattípusok QueryInfokérhetők le:
sztringek (alapértelmezett)
SYSTEMTIME(az "Data:" "Expires:" stb. fejlécekhez)DWORD (STATUS_CODE, CONTENT_LENGTH stb.)
Ha egy sztringet a pufferbe ír, és a tagfüggvény sikeres, lpdwBufferLength a sztring hosszát mínusz 1 karakterben tartalmazza a befejező NULL karakterhez.
A lehetséges dwInfoLevel értékek a következők:
HTTP_QUERY_MIME_VERSION
HTTP_QUERY_CONTENT_TYPE
HTTP_QUERY_CONTENT_TRANSFER_ENCODING
HTTP_QUERY_CONTENT_ID
HTTP_QUERY_CONTENT_DESCRIPTION
HTTP_QUERY_CONTENT_LENGTH
HTTP_QUERY_ALLOWED_METHODS
HTTP_QUERY_PUBLIC_METHODS
HTTP_QUERY_DATE
HTTP_QUERY_EXPIRES
HTTP_QUERY_LAST_MODIFIED
HTTP_QUERY_MESSAGE_ID
HTTP_QUERY_URI
HTTP_QUERY_DERIVED_FROM
HTTP_QUERY_LANGUAGE
HTTP_QUERY_COST
HTTP_QUERY_WWW_LINK
HTTP_QUERY_PRAGMA
HTTP_QUERY_VERSION
HTTP_QUERY_STATUS_CODE
HTTP_QUERY_STATUS_TEXT
HTTP_QUERY_RAW_HEADERS
HTTP_QUERY_RAW_HEADERS_CRLF
CHttpFile::QueryInfoStatusCode
Hívja meg ezt a tagfüggvényt, hogy lekérje a HTTP-kéréshez társított állapotkódot, és helyezze el a megadott dwStatusCode paraméterben.
BOOL QueryInfoStatusCode(DWORD& dwStatusCode) const;
Paraméterek
dwStatusCode
Egy állapotkódra mutató hivatkozás. Az állapotkódok a kért esemény sikerességét vagy sikertelenségét jelzik. Az állapotkód-leírások kiválasztásával kapcsolatban lásd a Megjegyzések című témakört.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0. Ha a hívás sikertelen, a Rendszer meghívhatja a Win32 GetLastError függvényt a hiba okának meghatározásához.
Megjegyzések
Ezt a tagfüggvényt csak a SendRequest sikeres hívása vagy az CHttpFileOpenURL által sikeresen létrehozott objektum esetén használja.
A HTTP-állapotkódok csoportokba tartoznak, amelyek a kérés sikerességét vagy sikertelenségét jelzik. Az alábbi táblázatok az állapotkódcsoportokat és a leggyakoribb HTTP-állapotkódokat ismertetik.
| Csoport | Meaning |
|---|---|
| 200-299 | Success |
| 300-399 | Információ |
| 400-499 | Kérési hiba |
| 500-599 | Kiszolgálóhiba |
Gyakori HTTP-állapotkódok:
| Állapotkód | Meaning |
|---|---|
| 200 | URL-cím található, az átvitel a következő: |
| 400 | Nem értelmezhető kérés |
| 404 | A kért URL-cím nem található |
| 405 | A kiszolgáló nem támogatja a kért metódust |
| ötszáz | Ismeretlen kiszolgálóhiba |
| 503 | Kiszolgálói kapacitás elérve |
CHttpFile::SendRequest
Hívja meg ezt a tagfüggvényt, hogy kérést küldjön egy HTTP-kiszolgálónak.
BOOL SendRequest(
LPCTSTR pstrHeaders = NULL,
DWORD dwHeadersLen = 0,
LPVOID lpOptional = NULL,
DWORD dwOptionalLen = 0);
BOOL SendRequest(
CString& strHeaders,
LPVOID lpOptional = NULL,
DWORD dwOptionalLen = 0);
Paraméterek
pstrHeaders
A küldendő fejlécek nevét tartalmazó sztringre mutató mutató.
dwHeadersLen
A pstrHeaders által azonosított fejlécek hossza.
lpOptional
Bármely választható adat, amely közvetlenül a kérelemfejlécek után küldhető el. Ezt általában POST és PUT műveletekhez használják. Ez NULL értékű lehet, ha nem kötelező adatokat küldeni.
dwOptionalLen
Az lpOptional hossza.
strHeaders
Az elküldött kérés fejléceinek nevét tartalmazó sztring.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0. Ha a hívás sikertelen, állapítsa meg a hiba okát a kidobott CInternetException objektum vizsgálatával.
CHttpFile::SendRequestEx
Hívja meg ezt a tagfüggvényt, hogy kérést küldjön egy HTTP-kiszolgálónak.
BOOL SendRequestEx(
DWORD dwTotalLen,
DWORD dwFlags = HSR_INITIATE,
DWORD_PTR dwContext = 1);
BOOL SendRequestEx(
LPINTERNET_BUFFERS lpBuffIn,
LPINTERNET_BUFFERS lpBuffOut,
DWORD dwFlags = HSR_INITIATE,
DWORD_PTR dwContext = 1);
Paraméterek
dwTotalLen
A kérelemben elküldendő bájtok száma.
dwFlags
A műveletet leíró jelzők. A megfelelő jelzők listáját a HttpSendRequestEx fájlban találja a Windows SDK-ban.
dwContext
A művelet környezeti azonosítója CHttpFile . A paraméterről további információt a Megjegyzésekben talál.
lpBuffIn
Mutasson egy inicializált INTERNET_BUFFERS , amely a művelethez használt bemeneti puffert írja le.
lpBuffOut
Mutasson egy inicializált INTERNET_BUFFERS, amely a művelethez használt kimeneti puffert írja le.
Visszaadott érték
Sikertelen, ha sikeres. Ha a hívás sikertelen, állapítsa meg a hiba okát a kidobott CInternetException objektum vizsgálatával.
Megjegyzések
Ez a függvény lehetővé teszi, hogy az alkalmazás adatokat küldjön a Write and WriteString metódussal CInternetFile. A függvény felülbírálásának meghívása előtt ismernie kell az elküldendő adatok hosszát. Az első felülbírálással megadhatja az elküldeni kívánt adatok hosszát. A második felülbírálás INTERNET_BUFFERS struktúrákra mutató mutatókat fogad el, amelyek a puffer részletes leírására használhatók.
Miután a fájlba írta a tartalmat, hívja meg az EndRequestet a művelet befejezéséhez.
A dwContext alapértelmezett értékét az MFC küldi el az CHttpFile objektumnak az objektumot létrehozó CHttpFileCInternetSession objektumból. Amikor meghívja a CInternetSession::OpenURL vagy CHttpConnection parancsot egy CHttpFile objektum létrehozásához, felülbírálhatja az alapértelmezett beállítást, hogy a környezetazonosítót egy ön által választott értékre állítsa. A rendszer visszaadja a környezetazonosítót a CInternetSession::OnStatusCallback fájlnak, hogy állapotot adjon meg azon az objektumon, amellyel azonosítva van. A környezetazonosítóval kapcsolatos további információkért tekintse meg az internet első lépései: WinInet című cikket.
Example
Ez a kódtöredék elküldi egy sztring tartalmát egy MFCISAPI.DLL nevű DLL-nek a LOCALHOST-kiszolgálón. Bár ez a példa csak egy hívást WriteStringhasznál, a blokkokban lévő adatok több hívással történő elküldése elfogadható.
CString strData = _T("Some very long data to be POSTed here!");
pServer = session.GetHttpConnection(_T("localhost"));
pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST,
_T("/MFCISAPI/MFCISAPI.dll?"));
pFile->SendRequestEx(strData.GetLength());
pFile->WriteString(strData);
pFile->EndRequest();
Lásd még
CInternetFile osztály
hierarchiadiagram
CInternetFile osztály
CGopherFile osztály
CHttpConnection osztály