Jak zpracovat požadavky POST v popisovač Zapojitelný protokol

DŮLEŽITÉ: Tento článek je přeložen pomocí softwaru na strojový překlad Microsoft. Nepřesný či chybný překlad lze opravit prostřednictvím technologie Community Translation Framework (CTF). Microsoft nabízí strojově přeložené, komunitou dodatečně upravované články, a články přeložené lidmi s cílem zajistit přístup ke všem článkům v naší znalostní bázi ve více jazycích. Strojově přeložené a dodatečně upravované články mohou obsahovat chyby ve slovníku, syntaxi a gramatice. Společnost Microsoft není odpovědná za jakékoliv nepřesnosti, chyby nebo škody způsobené nesprávným překladem obsahu nebo jeho použitím našimi zákazníky. Více o CTF naleznete na http://support.microsoft.com/gp/machine-translation-corrections/cs.

280522
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Souhrn
V některých případech je žádoucí mít Zapojitelný protokol jako cíl požadavky POST formuláře. Tento článek pojednává o způsobu zpracování požadavků POST v obslužné rutině asynchronní Zapojitelný protokol (APPH).
Další informace
APPH přijme od klienta v rámci struktury VAZBĚ dat (formou URLMON), jak je popsáno v následujícím článku znalostní báze Microsoft Knowledge Base:
165800 PostMon.exe ukazuje použití zástupného názvu URL na POST Data
Navíc MIME Typ dat lze získat pomocí metody IInternetBindInfo::GetBindString s prvním parametrem BINDSTRING_POST_DATA_MIME.

S těmito informacemi pozadí můžete použít následující kód POST data z v rámci metody IInternetProtocol::Start() APPH získat:
STDMETHODIMP CMyPlugProt::Start(        LPCWSTR szUrl,        IInternetProtocolSink *pIProtSink,        IInternetBindInfo *pIBindInfo,        DWORD grfSTI,        DWORD dwReserved){	// Retrieve POST data.	// m_bindinfo and m_bindf are members of the CMyPlugProt class, declared as:	// 	BINDINFO m_bindinfo;	// 	DWORD m_bindf;	m_bindinfo.cbSize = sizeof(BINDINFO);	if (pIBindInfo)		hr = pIBindInfo->GetBindInfo(&m_bindf, &m_bindinfo);		switch (m_bindinfo.dwBindVerb)	{	case    BINDVERB_POST:		void *pData;		UINT cPostData;	// Post data size.				if (m_bindinfo.stgmedData.tymed != TYMED_HGLOBAL)			break;				cPostData = m_bindinfo.cbstgmedData;		if (!cPostData)			break;				pData = GlobalLock(m_bindinfo.stgmedData.hGlobal);		if (pData)		{			// Allocate space to store the POST data if required.			// For instance, a member variable, m_postData, 			// declared as "BYTE *m_postData;", could be used 			// as below:			// 	m_postData = new BYTE[cPostData];			// 	memcpy(m_postData, pData, cPostData);						// After checking the data, unlock buffer.			GlobalUnlock(m_bindinfo.stgmedData.hGlobal);						// Retrieve MIME type of the post data.			LPOLESTR pszMIMEType;				ULONG dwSize;			hr = pIBindInfo->GetBindString(				BINDSTRING_POST_DATA_MIME, &pszMIMEType, 1, &dwSize);						if(hr == S_OK)			{				// pszMIMEType now contains the MIME type of the post data.				// This would typically be "application/x-www-form-urlencoded" 				// for a POST. In general, it could be any (standard or 				// otherwise) MIME type. Many of the standard MIME type strings 				// are #defined in <URLMon.h>. For instance, CFSTR_MIME_TEXT 				// is L"text/plain".								// Store the MIME type in a member variable here, if required.				// Finally, free pszMIMEType via CoTaskMemFree.				if (pszMIMEType)				{					CoTaskMemFree(pszMIMEType);					pszMIMEType = NULL;				}			}			else			{				// Assume "application/x-www-form-urlencoded".			}					}				break;			default:		// It's a GET.		break;	}}	// End of function STDMETHODIMP CMyPlugProt::Start()				
Odkazy
Další informace naleznete v následujících článcích na Microsoft Developer Network:
Přehled asynchronní připojitelné protokoly.
http://msdn2.microsoft.com/en-us/library/Aa767916.aspx

Další informace o vytváření webových řešení pro aplikaci Microsoft Internet Explorer naleznete na následujících webech společnosti Microsoft:

Upozornění: Tento článek byl přeložen automaticky

Vlastnosti

ID článku: 280522 - Poslední kontrola: 01/12/2015 17:08:33 - Revize: 5.0

  • Microsoft Internet Explorer 4.01 Service Pack 1
  • kbnosurvey kbarchive kbhowto kburlmon kbmt KB280522 KbMtcs
Váš názor