Wie POST-Anforderungen in einem austauschbares Protokoll-Handler verarbeitet.

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 280522 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Zusammenfassung

Es ist manchmal wünschenswert, dass ein austauschbares Protokoll als Ziel der Formular-POST-Anforderungen. Dieser Artikel beschreibt, wie POST-Anforderungen in einem asynchronen austauschbares Protokoll-Handler (APPH) behandelt.

Weitere Informationen

Die APPH erhält die POST-Daten (durch URLMON) vom Client als Teil der Struktur PARAMETERLÄNGE, wie im folgenden Artikel der Microsoft Knowledge Base beschrieben:
165800 PostMon.exe veranschaulicht, wie URL-Moniker, POST-Daten
Darüber hinaus kann der MIME-Typ der POST-Daten mit Hilfe der IInternetBindInfo::GetBindString -Methode mit dem ersten Parameter BINDSTRING_POST_DATA_MIME abgerufen werden.

Diese Hintergrundinformationen können Sie den folgenden Code zum Abrufen der POST-Daten innerhalb einer APPH- IInternetProtocol::Start() -Methode:
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()
				

Informationsquellen

Weitere Informationen finden Sie in die folgenden Artikeln auf der Microsoft Developer Network:
Asynchrone austauschbare Protokolle (Übersicht)
http://msdn2.Microsoft.com/en-us/library/Aa767916.aspx

Weitere Informationen zur Entwicklung von webbasierten Lösungen für Microsoft Internet Explorer finden Sie auf der folgenden Microsoft-Websites:
http://msdn.Microsoft.com/IE/

http://support.Microsoft.com/IEP

Eigenschaften

Artikel-ID: 280522 - Geändert am: Montag, 10. Februar 2014 - Version: 4.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Internet Explorer 4.01 Service Pack 1
Keywords: 
kbnosurvey kbarchive kbDSupport kbhowto kburlmon kbmt KB280522 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 280522
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com