Bir takılabilir protokol işleyicisi'nde POST istekleri işlemek nasıl

Makale çevirileri Makale çevirileri
Makale numarası: 280522 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Özet

Bazen FORM POST istekleri hedef olarak takılabilir bir iletişim kuralı için tercih edilir. Bu makalede, bir zaman uyumsuz takılabilir protokol işleyicisinde (APPH) POST istekleri işlemek nasıl etkinleştireceğinizi açıklar.

Daha fazla bilgi

APPH (yoluyla URLMON) POST verilerini bağlama bilgisi yapısının parçası olarak istemciden Microsoft Bilgi Bankası'ndaki aşağıdaki makalede açıklanan alır:
165800 PostMon.exe POST verilerini için URL ad kullanımı gösterilmiştir
Buna ek olarak, POST verilerini MIME türünü BINDSTRING_POST_DATA_MIME'in ilk parametresi IInternetBindInfo::GetBindString yöntemi ile alınabilir.

Bu bilgiler ile bir APPH'ın IInternetProtocol::Start() yöntemi içindeki POST verilerini almak için aşağıdaki kodu kullanabilirsiniz:
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()
				

Referanslar

Ek bilgi için Microsoft Developer Network üzerinde aşağıdaki makalelere bakın:
Zaman uyumsuz takılabilir protokollerine genel bakış
http://msdn2.microsoft.com/en-us/library/Aa767916.aspx

Microsoft Internet Explorer için Web tabanlı çözümler geliştirme hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitelerini ziyaret edin:
http://msdn.microsoft.com/ie/

http://support.microsoft.com/iep

Özellikler

Makale numarası: 280522 - Last Review: 4 Şubat 2014 Salı - Gözden geçirme: 4.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Internet Explorer 4.01 Service Pack 1
Anahtar Kelimeler: 
kbnosurvey kbarchive kbhowto kburlmon kbmt KB280522 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 280522

Geri Bildirim Ver

 

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