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

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>
            欧美三级免费| 一区二区三区黄色| 欧美成人国产一区二区| 久久久久久91香蕉国产| 久久综合国产精品| 欧美成va人片在线观看| 免费欧美在线| 欧美日韩激情网| 国产精品久久一卡二卡| 国产日韩欧美一区在线 | 99精品99久久久久久宅男| 亚洲免费av电影| 亚洲欧美精品中文字幕在线| 欧美在线视频免费| 欧美成在线观看| 国产精品视频网站| 亚洲国产高清在线| 亚洲欧美成人一区二区三区| 久久久综合视频| 日韩小视频在线观看| 欧美一区二区视频免费观看 | 亚洲国产精品黑人久久久| 亚洲国产日韩在线一区模特| 一区二区三区欧美在线| 久久久久国产精品厨房| 欧美四级在线| 亚洲国产精品成人va在线观看| 一区二区三区四区五区精品视频 | 91久久午夜| 亚洲国产精品一区二区尤物区| 亚洲欧洲一区二区三区| 性18欧美另类| 亚洲人成在线播放网站岛国| 亚洲午夜视频在线观看| 久久网站热最新地址| 欧美性感一类影片在线播放| 在线欧美视频| 久久久国产精品一区| 亚洲精品一区久久久久久| 久久亚洲风情| 国产最新精品精品你懂的| 亚洲欧美日韩精品| 亚洲精品一线二线三线无人区| 久久精品在线观看| 国产欧美一区二区三区另类精品 | 欧美日韩激情小视频| 影音先锋一区| 久久久久久国产精品mv| 亚洲一区二区视频在线| 欧美色图五月天| 亚洲最新在线视频| 亚洲国产精品国自产拍av秋霞 | 亚洲电影观看| 久久尤物电影视频在线观看| 国产免费亚洲高清| 午夜精品久久久久久久蜜桃app| 亚洲久久一区二区| 欧美日韩精品久久久| 一区二区激情小说| 99精品视频免费在线观看| 欧美噜噜久久久xxx| 日韩一级精品| 99国产精品国产精品久久 | 欧美精品国产精品日韩精品| 在线成人亚洲| 亚洲成色www8888| 欧美精品久久久久久久久老牛影院 | 欧美大片在线看免费观看| 亚洲国产影院| 欧美激情成人在线| 欧美国产日韩在线观看| 一本色道久久综合亚洲精品婷婷 | 亚洲精品一二区| 欧美亚一区二区| 香蕉av福利精品导航| 免费一级欧美在线大片| 日韩视频中午一区| 91久久精品国产91久久性色| 久久久久在线| 亚洲精品极品| 夜夜夜精品看看| 国产精品视频在线观看| 久久久久国产成人精品亚洲午夜| 久久爱www.| 日韩午夜高潮| 亚洲一区免费看| 国内不卡一区二区三区| 亚洲第一在线综合在线| 欧美日韩专区| 久久亚洲精品网站| 欧美激情免费观看| 午夜精品理论片| 久久免费视频这里只有精品| 夜夜嗨av色一区二区不卡| 亚洲天堂第二页| 亚洲第一级黄色片| 一区二区免费在线视频| 黄色亚洲免费| 一区二区黄色| 亚洲欧洲精品一区二区三区不卡 | 亚洲国产三级在线| 国产精品盗摄久久久| 蜜臀va亚洲va欧美va天堂| 欧美人与性禽动交情品| 久久午夜av| 国产精品一区二区a| 亚洲国内欧美| 依依成人综合视频| 亚洲制服丝袜在线| 一区二区黄色| 欧美第一黄网免费网站| 久久先锋影音| 国产精品婷婷| 99在线热播精品免费99热| 亚洲高清免费在线| 久久av免费一区| 欧美在线地址| 国产精品美女主播在线观看纯欲| 欧美阿v一级看视频| 国产午夜久久久久| 亚洲午夜一区二区三区| 日韩西西人体444www| 久久久久久尹人网香蕉| 久久精品视频在线看| 国产精品jizz在线观看美国| 亚洲国产另类 国产精品国产免费| 国产在线观看91精品一区| 亚洲一区精品电影| 亚洲女性喷水在线观看一区| 欧美日韩大片| 亚洲精品一品区二品区三品区| 亚洲国产精品福利| 久久亚洲精品视频| 亚洲视频999| 一区二区三区高清| 欧美一区二区三区四区在线| 亚洲一区免费看| 欧美激情视频一区二区三区在线播放| 久久久久久夜| 狠狠色综合网| 久久亚洲欧美| 亚洲国产成人午夜在线一区| 亚洲成人自拍视频| 美女91精品| 亚洲欧洲精品一区| av成人国产| 国产精品jvid在线观看蜜臀 | 午夜精品视频在线观看| 国产精品卡一卡二卡三| 亚洲欧美国产不卡| 久久精品国产一区二区三| 韩国av一区二区三区四区| 欧美在线免费观看视频| 久久亚洲午夜电影| 91久久精品日日躁夜夜躁欧美| 免费看亚洲片| 亚洲视频精选在线| 亚洲一区二区高清视频| 欧美日韩伦理在线免费| 亚洲裸体在线观看| 午夜精品亚洲一区二区三区嫩草| 国产精品一区在线观看| 久久福利资源站| 亚洲福利一区| 亚洲小说欧美另类社区| 国产乱子伦一区二区三区国色天香| 亚洲线精品一区二区三区八戒| 欧美一级久久| 亚洲激情网站| 欧美性一二三区| 久久亚洲视频| 亚洲午夜视频在线| 欧美国产日韩a欧美在线观看| 99re视频这里只有精品| 欧美一区二区三区精品| 亚洲影视综合| 久久久久久久一区二区三区| 在线观看成人av| 国产精品久久一级| 久久久久久婷| 亚洲一区免费网站| 亚洲成色777777在线观看影院| 亚洲主播在线播放| 亚洲国产日韩欧美| 国产日产欧美精品| 欧美激情a∨在线视频播放| 亚洲欧美日韩天堂一区二区| 欧美激情一区二区三区蜜桃视频| 亚洲欧美变态国产另类| 最新国产拍偷乱拍精品| 韩国精品一区二区三区| 国产精品va在线播放| 欧美电影电视剧在线观看| 久久se精品一区精品二区| 亚洲午夜羞羞片| 99riav国产精品| 欧美一区不卡| 国产一区二区成人| 国产精品v欧美精品∨日韩| 另类春色校园亚洲|