青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

如何實現自動化 Internet Explorer 以 POST 表單數據


?

概要
如 Microsoft Visual Basic 自動化控制器可以自動化 Internet Explorer (IE) 發送數據使用 POST...

如 Microsoft Visual Basic 自動化控制器可以自動化 Internet Explorer (IE) 發送數據使用 POST 方法的 HTTP 服務器 (如 Internet Information Server (IIS)。 本文演示如何使自動從 Visual Basic 并從簡單的 Visual C++ 應用程序執行窗體數據的 POST 的 IE。 該示例說明了整個 Internet Explorer 應用程序的自動化時, 相同的技術可應用于 Web 瀏覽器 ActiveX 控件當宿主于應用程序中時。

更多信息
幾種方法可用于將數據發送到 HTTP 服務器。 GET 和 POST 是目前最常見的。 POST 通常用于表單數據提交到 HTTP 服務器數據超過最大允許傳輸...

幾種方法可用于將數據發送到 HTTP 服務器。 GET 和 POST 是目前最常見的。 POST 通常用于表單數據提交到 HTTP 服務器數據超過最大允許傳輸使用 GET 方法時。 此限制通常是 2K 數據。

IE 公開 IWebBrowser(App) 接口到自動化控制器。 在 IWebBrowser(App) 接口公開一個導航方法。在接口定義語言 (IDL) 語法 (通用表示派生的同時 Visual Basic 和 Visual C++ 語法),Navigate 方法類似于以下:
HRESULT Navigate([in] BSTR URL, [in] VARIANT* Flags,
                [in] VARIANT* TargetFrameName, [in] VARIANT* PostData,
                [in] VARIANT* Headers);
,以便執行 POST,僅,URL、 PostData 和 Headers 參數才相關。 在其他一個參數,請參閱 Internet Client SDK 文檔信息。

要調用導航 POST 到 HTTP 服務器的表單數據,URL 參數必須指定一個有效的地址 PostData 參數必須包含的字節的 SAFEARRAY 而且 Headers 參數必須包含 BSTR 包含以下 HTTP 標頭:
應用內容的類型: 程序 / x www 的窗體的 urlencoded
此標頭指示發送的數據進行編碼 HTML 規范中指定的規則。

Internet Explorer 版本 3.0、 3.01 和 3.02 不支持 HTTP 過帳數據通過 Navigate 方法的服務器。 WinInet 和 URL 的標記是兩個可能的替代方法。 有關 WinInet 和標記的詳細信息,請參閱此參考一節。

請注意 Internet Explorer 腳本對象模型對象"窗口"有"定位"方法也。 這 Navigate 方法將只接受 URL,不能向 Web 服務器的 POST 數據。

若要測試以下示例,以下 Active Server Page (ASP) 應將保存到文件 NAVPOST.ASP 目錄中運行 Internet Information Server (IIS) 版本 3.0 的 NT 4.0 服務器上。 目錄應將識別由 IIS 為虛擬根目錄的執行權限:
   <HTML>
   <%
   cFlavor = Request("Flavor")
   cName = Request("FName")
   %>
   <BODY>
   Hello, <% =cName %>. <br>
   One scoop of <% =cFlavor %> coming right up!
   </BODY>
   </HTML>

Visual Basic

要演示在 Visual Basic 中的 POST,執行下面的步驟:

  1. Visual Basic 中,請啟動新的標準 EXE 項目。 默認情況下會創建 Form 1。 將下列控件添加到 Form 1:
       Object                     Name                  Caption
       -------------------------------------------------------------------
    
       Label                      lblName                First Name
       Label                      lblFlavor              Flavor
       CommandButton              cmdSubmit              Submit
    
       ComboBox                   cboFlavor
       TextBox                    txtName
       TextBox                    edtPostData
    (將多行 edtPostData 應和有滾動條)
  2. 從項目菜單中調用"參考",并 for"Microsoft Internet Controls"(SHDOCVW.DLL) 中添加對項目的引用。 請確保這是從引用對話框和不只是從組件對話框。
  3. 一般聲明中插入以下代碼部分:
          Dim g_oIE As InternetExplorer ' Global reference to an
                                        ' instance of IE
          Private Sub cmdSubmit_Click()
          edtPostData.Text = ""  ' Initialize an edit box for testing
          ReDim aByte(0) As Byte ' Array of bytes to hold data to post
    
          ' Extract the URL encoded data from the UI,
          ' and pack it into an array of bytes
          cFlavor = cboFlavor.List(cboFlavor.ListIndex)
          cParamName = "FName="
          cParamFlavor = "Flavor="
          cSeparator = "&"
          cPostData = cParamName & txtName.Text _
             & cSeparator & cParamFlavor & cFlavor
          PackBytes aByte(), cPostData
    
          ' For testing, rebuild the POST data and stuff
          ' it into an edit box
          For i = LBound(aByte) To UBound(aByte)
              edtPostData = edtPostData + Chr(aByte(i))
          Next
    
          Dim vPost As Variant
          vPost = aByte ' Assign the byte array to a VARIANT
          Dim vFlags As Variant
          Dim vTarget As Variant
          Dim vHeaders As Variant
          vHeaders = _
             "Content-Type: application/x-www-form-urlencoded" _
             + Chr(10) + Chr(13)
    
          ' You're done. Now call Navigate
          ' Note: modify path to server as appropriate
          g_oIE.Navigate "http://<server>/scripts/navpost.asp", _
             vFlags, vTarget, vPost, vHeaders
    
          End Sub
    
          Private Sub Form_Load()
          ' Create an instance of IE
          Set g_oIE = New InternetExplorer
          g_oIE.Visible = True
    
          ' Populate a combobox with some flavor choices
          cboFlavor.List(0) = "Vanilla"
          cboFlavor.List(1) = "Chocolate"
          cboFlavor.List(2) = "Strawberry"
          cboFlavor.ListIndex = 0 ' The default choice
          End Sub
    
          ' Utility function to pack the data to post into an array of bytes
          Private Sub PackBytes(ByteArray() As Byte, ByVal PostData As String)
          iNewBytes = Len(PostData) - 1   ' Get rid of the null termination
          If iNewBytes < 0 Then
           Exit Sub
          End If
          ReDim ByteArray(iNewBytes)
          For i = 0 To iNewBytes
           ch = Mid(PostData, i + 1, 1)
           If ch = Space(1) Then
              ch = "+"
           End If
           ByteArray(i) = Asc(ch)
          Next
        End Sub
  4. 修改在調用該 URL 定位根據,關閉所有正在運行的實例的 IE,并從運行菜單中選擇開始。
  5. 在名字文本框中輸入您的姓名,選擇一個的風格,然后單擊提交命令按鈕。 Visual Basic 窗體數據將過帳到 HTTP 服務器,并且響應將顯示在可見的瀏覽器窗口中。

Visual C++

要演示在 Visual C++ 中的 POST,執行下面的步驟:

  1. 確保安裝了 ActiveX 或 Internet Client SDK。
  2. 啟動 Visual C++,并創建一個新的 Win 32 控制臺項目。
  3. 創建一個新的文本文檔并添加下面的代碼:
          #include <windows.h>
          #define INITGUID
          #include <initguid.h>
          #include <exdisp.h>
          #include <memory.h>
    
          HRESULT GetPostData(LPVARIANT pvPostData);
    
          void main()
          {
             HRESULT hr;
             IWebBrowserApp* pWBApp = NULL; // Derived from IWebBrowser
             BSTR bstrURL = NULL, bstrHeaders = NULL;
             VARIANT vFlags = {0},
                vTargetFrameName = {0},
                vPostData = {0},
                vHeaders = {0};
    
             if (FAILED(hr = CoInitialize(NULL)))
             {
                return;
             }
    
             if (FAILED(hr = CoCreateInstance(CLSID_InternetExplorer,
                NULL,
                CLSCTX_SERVER,
                IID_IWebBrowserApp,
                (LPVOID*)&pWBApp)))
             {
                goto Error;
             }
    
             bstrURL = SysAllocString(L"http://<server>/scripts/navpost.asp");
             if (!bstrURL)
             {
                goto Error;
             }
    
             bstrHeaders = SysAllocString(
                L"Content-Type: application/x-www-form-urlencoded\r\n");
             if (!bstrHeaders)
             {
                goto Error;
             }
    
             V_VT(&vHeaders) = VT_BSTR;
             V_BSTR(&vHeaders) = bstrHeaders;
    
             hr = GetPostData(&vPostData);
             hr = pWBApp->Navigate(bstrURL, &vFlags,
                      &vTargetFrameName, &vPostData, &vHeaders);
             pWBApp->put_Visible(VARIANT_TRUE);
    
          Error:
             if (bstrURL) SysFreeString(bstrURL);
             if (bstrHeaders) SysFreeString(bstrHeaders);
             VariantClear(&vPostData);
             if (pWBApp) pWBApp->Release();
             CoUninitialize();
          }
    
          // Pack some data into a SAFEARRAY of BYTEs. Return in a VARIANT
          HRESULT GetPostData(LPVARIANT pvPostData)
          {
             HRESULT hr;
             LPSAFEARRAY psa;
             LPCTSTR cszPostData = "FName=Matt&Flavor=Mocha+Chip";
             UINT cElems = lstrlen(cszPostData);
             LPSTR pPostData;
    
             if (!pvPostData)
             {
                return E_POINTER;
             }
    
             VariantInit(pvPostData);
    
             psa = SafeArrayCreateVector(VT_UI1, 0, cElems);
             if (!psa)
             {
                return E_OUTOFMEMORY;
             }
    
             hr = SafeArrayAccessData(psa, (LPVOID*)&pPostData);
             memcpy(pPostData, cszPostData, cElems);
             hr = SafeArrayUnaccessData(psa);
    
             V_VT(pvPostData) = VT_ARRAY | VT_UI1;
             V_ARRAY(pvPostData) = psa;
             return NOERROR;
          }
  4. 修改適當,URL 引用,并保存代碼。 將其添加到該的項目,然后生成。
  5. 關閉所有瀏覽器實例并運行該應用程序。
  6. 切換到正在運行的實例的 IE,以查看數據的過帳。
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美日韩一区二区三区在线| 欧美a级理论片| 免费在线成人av| 欧美日韩一区二区三区视频| 国产日韩欧美综合一区| 亚洲国产成人久久综合| 亚洲视频在线二区| 久久午夜电影| 日韩西西人体444www| 欧美伊久线香蕉线新在线| 欧美高清一区二区| 国产情侣久久| 亚洲美女视频| 久久激情一区| 亚洲美女91| 久久久精品一品道一区| 欧美午夜在线| 亚洲国产精品久久人人爱蜜臀| 亚洲一区黄色| 亚洲国产激情| 欧美亚洲一区三区| 欧美日韩一区高清| 亚洲第一精品影视| 欧美中文日韩| 亚洲乱码视频| 狂野欧美激情性xxxx欧美| 国产精品黄视频| 亚洲精选中文字幕| 久久一二三国产| 亚洲一区二区三区在线看| 欧美成人激情视频| 国外成人在线视频| 亚洲午夜一区二区三区| 久久夜色撩人精品| 亚洲欧美高清| 欧美乱人伦中文字幕在线| 国产午夜精品久久久久久免费视| 亚洲精选成人| 久久精品噜噜噜成人av农村| 亚洲人成艺术| 久久精品一二三区| 国产精品美女主播在线观看纯欲| 亚洲黄色免费| 久久久久久久久久久成人| 日韩视频国产视频| 欧美~级网站不卡| 国产亚洲欧美一区| 亚洲女同精品视频| 久久久久久婷| 宅男噜噜噜66一区二区| 欧美日韩国产黄| 在线日韩中文字幕| 久久久91精品国产| 在线一区免费观看| 欧美日韩国产一区精品一区 | 欧美激情精品久久久六区热门| 亚洲一区二区三区乱码aⅴ| 欧美成人精品h版在线观看| 国产夜色精品一区二区av| 亚洲专区在线| 亚洲国产乱码最新视频| 亚洲私人影院在线观看| 欧美成人激情视频| 亚洲国产精品传媒在线观看 | 性一交一乱一区二区洋洋av| 亚洲黄色成人| 免费久久精品视频| 激情自拍一区| 久久久久久久网站| 欧美亚洲免费在线| 国产精品一区二区三区久久久 | 一区二区日韩欧美| 欧美剧在线观看| 亚洲另类在线视频| 亚洲国产99| 欧美成人第一页| 亚洲国产一区二区三区a毛片 | 免费成人毛片| 亚洲国产欧美久久| 欧美成人首页| 欧美aⅴ99久久黑人专区| 亚洲国产三级| 亚洲成色最大综合在线| 麻豆91精品| 亚洲精品视频在线| 亚洲激情电影中文字幕| 欧美激情在线狂野欧美精品| 亚洲精品一区在线观看| 亚洲区欧美区| 欧美日韩亚洲一区二区三区| 亚洲一区二区黄色| 亚洲视频国产视频| 国产美女精品一区二区三区| 欧美在线啊v| 久久国产99| 亚洲第一成人在线| 91久久极品少妇xxxxⅹ软件| 欧美日韩免费看| 亚洲宅男天堂在线观看无病毒| 亚洲一区不卡| 国产视频精品免费播放| 久久亚洲综合网| 另类天堂av| 亚洲精品日韩一| 在线中文字幕日韩| 国产亚洲一区二区精品| 噜噜噜91成人网| 欧美电影免费观看高清完整版| 99re6热只有精品免费观看| 夜夜夜久久久| 国产色爱av资源综合区| 欧美88av| 欧美日韩四区| 欧美在线观看网站| 久久人人爽人人| 在线一区二区三区做爰视频网站| 一区二区三区欧美成人| 国产亚洲一区精品| 久久综合色影院| 欧美精品v日韩精品v国产精品| 亚洲一区二区三区在线观看视频| 性欧美xxxx大乳国产app| 亚洲国产经典视频| 99国产一区| 国内久久视频| 亚洲全部视频| 国产精品福利片| 久久亚洲国产成人| 欧美美女喷水视频| 久久精品人人爽| 欧美高清免费| 欧美影院久久久| 欧美fxxxxxx另类| 午夜久久久久久久久久一区二区| 久久夜色精品国产噜噜av| 亚洲午夜激情网页| 久久久久久久精| 亚洲一区二区欧美日韩| 久久久亚洲国产天美传媒修理工 | 夜夜嗨av一区二区三区四区| 国产一区二区三区的电影 | 老司机免费视频久久| 在线亚洲观看| 亚洲欧美一区二区原创| 亚洲巨乳在线| 欧美一区二区三区久久精品| 9i看片成人免费高清| 久久精品日产第一区二区| 亚洲图片在线观看| 久久婷婷人人澡人人喊人人爽| 亚洲一区二区三区在线播放| 免费欧美日韩| 久久久999精品免费| 欧美特黄一区| 亚洲高清自拍| 尹人成人综合网| 亚洲免费视频观看| 一本大道久久a久久综合婷婷| 久久精品人人做人人爽| 午夜一区二区三视频在线观看| 国产精品久久久久久av下载红粉| 99国产精品国产精品久久 | 久久综合色影院| 亚洲欧美一区在线| 一区二区三区日韩欧美精品| 国产精品永久免费视频| 欧美a级片一区| 国产日韩欧美一区二区三区在线观看 | 一本久久青青| 亚洲激情一区二区| 久久精品国产清高在天天线| 亚洲女人天堂av| 欧美日韩福利视频| 亚洲第一精品在线| 在线精品视频免费观看| 性色一区二区| 先锋影音久久久| 欧美日本免费| 欧美激情亚洲一区| 亚洲欧洲日夜超级视频| 久久婷婷久久| 久久亚洲国产成人| 国产亚洲一区二区三区| 午夜精品视频在线观看| 亚洲一区在线看| 欧美四级电影网站| 999亚洲国产精| 亚洲色在线视频| 欧美黄色片免费观看| 欧美第一黄色网| 亚洲国产日韩精品| 久久在线免费视频| 欧美电影在线观看完整版| 欧美中文在线观看| 好吊日精品视频| 国产日产精品一区二区三区四区的观看方式| 亚洲视频在线观看免费| 欧美一区二区在线免费播放| 久热成人在线视频| 美日韩在线观看|