⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vchttppost.txt

📁 post 提交用户输入的方式是隐含提交
💻 TXT
字号:
post 提交用户输入的方式是隐含提交,在ASP端用request.getform()来获取输入域的值;
get 提交用户输入的方式是显式提交,提交时在浏览器的地址栏里可以看见
用户输入的内容(你在Google中输入Java搜索,你按查找后可以在地址栏里看到java),
在ASP端用request.getquery()来获取输入域的值;

SUMMARY 
    To properly simulate a Form submission using WinInet, you need to send a header that indicates the proper Content-Type.
 For Forms, the proper Content-Type header is: Content-Type: application/x-www-form-urlencoded 
     
    MORE INFORMATION 
    In many cases, the server does not respond appropriately if a Content-Type is not specified. 
For example, the Active Server Pages component of IIS 3.0 actually checks this header specifically 
for 'application/x-www-form- urlencoded' before adding form variables to the "Request.Form" object. 
This MIME/Content-Type indicates that the data of the request is a list of URL- encoded form variables. 
URL-encoding means that space character (ASCII 32) is encoded as '+', special character such '!' encoded in hexadecemal form as '%21'. 
     
    Here is a snippet of code that uses the MFC WinInet classes to simulate a Form POST request: 
     CString strHeaders = 
     _T("Content-Type: application/x-www-form-urlencoded"); 
     // URL-encoded form variables - 
     // name = "John Doe", userid = "hithere", other = "P&Q" 
     CString strFormData = _T("name=John+Doe&userid=hithere&other=P%26Q"); 
     
     CInternetSession session; 
     CHttpConnection* pConnection = 
     session.GetHttpConnection(_T("ServerNameHere")); 
     CHttpFile* pFile = 
     pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, 
     _T("FormActionHere")); 
     BOOL result = pFile->SendRequest(strHeaders, 
     (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength()); 
     
     
    Without MFC, the same code translates to straight SDK calls as follows: 
     static TCHAR hdrs[] = 
     _T("Content-Type: application/x-www-form-urlencoded"); 
     static TCHAR frmdata[] = 
     _T("name=John+Doe&userid=hithere&other=P%26Q"); 
     statuc TCHAR accept[] = 
     _T("Accept: */*"); 
     
     // for clarity, error-checking has been removed 
     HINTERNET hSession = InternetOpen("MyAgent", 
     INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); 
     HINTERNET hConnect = InternetConnect(hSession, _T("ServerNameHere"), 
     INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1); 
     HINTERNET hRequest = HttpOpenRequest(hConnect, "POST", 
     _T("FormActionHere"), NULL, NULL, accept, 0, 1); 
     HttpSendRequest(hRequest, hdrs, strlen(hdrs), frmdata, strlen(frmdata)); 
     // close any valid internet-handles 


 //把sXmlMessage发送到指定的DsmpUrl地址上
            Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
            byte[] arrB = encode.GetBytes(sXmlMessage);
            HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(DsmpUrl);
            myReq.Method = "POST" ;
            myReq.ContentType = "application/x-www-form-urlencoded";
            myReq.ContentLength = arrB.Length;
            Stream outStream = myReq.GetRequestStream();            
            outStream.Write(arrB,0,arrB.Length);
            outStream.Close();


            //接收HTTP做出的响应
            WebResponse myResp = myReq.GetResponse();
            Stream ReceiveStream = myResp.GetResponseStream();                
            StreamReader readStream = new StreamReader( ReceiveStream, encode );
            Char[] read = new Char[256];
            int count = readStream.Read( read, 0, 256 );
            string str = null;
            while (count > 0) 
            { 
                str += new String(read, 0, count);
                count = readStream.Read(read, 0, 256);
            } 
            readStream.Close();
            myResp.Close();

public   static   string   PostData(   string   str)   
  {    
  try   
  {    
  byte[]   data   =   System.Text.Encoding.GetEncoding   ("GB2312").GetBytes   (   str   )   ;   
  //   准备请求...   
  HttpWebRequest   req   =   (HttpWebRequest)   WebRequest.Create   (   LMMPUrl   )   ;     
  req.Method   =   "Post"   ;   
  req.ContentType   ="application/x-www-form-urlencoded";   
  req.ContentLength   =   data.Length   ;   
  Stream   stream   =   req.GetRequestStream   ()   ;   
  //   发送数据   
  stream.Write   (   data   ,0   ,data.Length   )   ;   
  stream.Close   ()   ;   
    
  HttpWebResponse   rep   =   (HttpWebResponse)req.GetResponse();   
  Stream   receiveStream   =   rep.GetResponseStream();   
  Encoding   encode   =   System.Text.Encoding.GetEncoding("GB2312");   
  //   Pipes   the   stream   to   a   higher   level   stream   reader   with   the   required   encoding   format.     
  StreamReader   readStream   =   new   StreamReader(   receiveStream,   encode   );   
    
  Char[]   read   =   new   Char[256];   
  int   count   =   readStream.Read(   read,   0,   256   );   
  StringBuilder   sb   =   new   StringBuilder   ("")   ;   
  while   (count   >   0)     
  {    
  String   readstr   =   new   String(read,   0,   count);   
  sb.Append   (   readstr   )   ;   
  count   =   readStream.Read(read,   0,   256);   
  }   
    
  rep.Close();   
  readStream.Close();   
    
  return   sb.ToString   ()   ;   
    
  }   
  catch(Exception   ex)   
  {    
  return   ""   ;   
  ForumExceptions.Log   (   ex   )   ;   
  }   
  }   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -