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

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>
            欧美性事免费在线观看| 亚洲午夜羞羞片| 欧美精品在线观看| 麻豆久久婷婷| 欧美激情bt| 欧美日韩一区二区三区高清| 国产精品成人免费| 国产精品日韩二区| 狠狠色综合播放一区二区| 激情成人亚洲| 亚洲国产欧美另类丝袜| 日韩视频在线免费| 欧美一级大片在线免费观看| 久久久成人网| 亚洲国产精品久久久| 欧美成人午夜剧场免费观看| 亚洲国产清纯| 亚洲综合成人在线| 久久只有精品| 国产精品女主播| 亚洲欧洲在线视频| 先锋亚洲精品| 亚洲第一精品福利| 亚洲一区综合| 亚洲欧美一区二区精品久久久| 久久中文欧美| 亚洲麻豆视频| 美脚丝袜一区二区三区在线观看 | 一区电影在线观看| 性做久久久久久| 欧美日韩一区在线| 亚洲东热激情| 久久精品免费看| 99在线热播精品免费| 欧美福利一区| 欧美大片免费观看在线观看网站推荐| 亚洲精品国产无天堂网2021| 国产精品视频导航| 欧美顶级少妇做爰| 亚洲私人影院| 一区二区久久| 久久狠狠亚洲综合| 欧美日韩在线第一页| 国产又爽又黄的激情精品视频| 亚洲激情六月丁香| 久久爱91午夜羞羞| 亚洲精品中文字幕有码专区| 久久精品欧美日韩精品| 国产精品国产a级| 亚洲精品综合久久中文字幕| 亚洲最新视频在线| av成人黄色| 欧美激情第五页| 久久精品国产欧美激情| 国产精品美女999| 99视频精品全部免费在线| 久久亚洲国产精品一区二区 | 免费看的黄色欧美网站| 国产日韩欧美91| 欧美一区综合| 亚洲欧美另类在线观看| 国产精品高潮呻吟久久| 亚洲欧美成aⅴ人在线观看| 日韩一级不卡| 欧美午夜一区二区三区免费大片 | 欧美人与禽猛交乱配| 亚洲区在线播放| 亚洲人成人77777线观看| 欧美chengren| 亚洲另类一区二区| 亚洲国产精品一区二区尤物区| 久久综合网络一区二区| 91久久久国产精品| 亚洲激情偷拍| 欧美日韩在线综合| 欧美一区免费| 亚洲国产高清一区| 欧美激情一区二区三区在线视频| 亚洲精品一区二区三区四区高清| 欧美国产视频日韩| 欧美日产在线观看| 午夜精品在线看| 久久都是精品| 欧美午夜宅男影院| 国产欧美日韩一区二区三区| 99re这里只有精品6| 亚洲视频中文字幕| 国产农村妇女精品一二区| 免费成人小视频| 激情文学一区| 亚洲韩国一区二区三区| 欧美日韩一区综合| 久久精品国产91精品亚洲| 久久国产欧美精品| 亚洲国产成人在线播放| 99精品久久久| 国产综合香蕉五月婷在线| 欧美成人久久| 国产精品久久久久久久第一福利| 久久亚洲精品网站| 欧美日韩国产va另类| 久久久久国色av免费看影院| 欧美国产日产韩国视频| 久久高清免费观看| 欧美另类高清视频在线| 久久精品99国产精品| 国内揄拍国内精品久久| 亚洲国产视频直播| 亚洲永久免费观看| 亚洲开发第一视频在线播放| 欧美伊人久久久久久午夜久久久久| 在线观看精品视频| 一区二区三区毛片| 亚洲精品永久免费| 欧美一区高清| 性做久久久久久免费观看欧美| 久久一区二区视频| 午夜国产欧美理论在线播放| 欧美成人日本| 欧美chengren| 国产主播精品| 亚洲综合日韩在线| 亚洲欧美日韩综合aⅴ视频| 免费av成人在线| 久久另类ts人妖一区二区| 国产精品女人毛片| 一区二区三区欧美| 在线视频日本亚洲性| 免费中文字幕日韩欧美| 开元免费观看欧美电视剧网站| 国产精品视频免费| 这里是久久伊人| 亚洲一区久久久| 欧美日韩在线一区二区三区| 亚洲精品网址在线观看| 一本大道久久精品懂色aⅴ | 国产精品99久久久久久www| 欧美 日韩 国产一区二区在线视频 | 欧美一级在线亚洲天堂| 欧美极品色图| 亚洲国产免费看| 亚洲第一精品福利| 老司机成人网| 亚洲国产成人久久综合一区| 激情婷婷亚洲| 男人的天堂亚洲| 亚洲高清av在线| 日韩视频一区二区三区在线播放免费观看| 老司机午夜精品| 性色av一区二区三区红粉影视| 日韩亚洲国产欧美| 欧美日韩国产一中文字不卡| 99av国产精品欲麻豆| 亚洲视频碰碰| 国产精品欧美日韩久久| 亚洲午夜一二三区视频| 久久精品二区三区| 亚洲第一福利在线观看| 欧美激情在线观看| 亚洲美洲欧洲综合国产一区| 亚洲一区黄色| 国内精品久久久久影院优| 免费人成精品欧美精品| 亚洲国产一区二区a毛片| 亚洲在线第一页| 国内外成人在线视频| 媚黑女一区二区| 亚洲视频综合| 久久在线视频在线| 欧美激情亚洲激情| 欧美国产在线视频| 亚洲一区三区电影在线观看| 久久嫩草精品久久久精品| 亚洲人被黑人高潮完整版| 欧美视频四区| 久久这里有精品视频| 99精品国产热久久91蜜凸| 久久久久久精| 一区二区日韩伦理片| 激情久久久久| 欧美日韩国产精品一区| 香蕉av777xxx色综合一区| 亚洲欧洲综合另类| 欧美专区在线播放| 亚洲美女色禁图| 国内成+人亚洲| 欧美美女喷水视频| 欧美伊人久久| 亚洲综合另类| 亚洲区第一页| 免费成人av资源网| 西西人体一区二区| 亚洲天堂av图片| 亚洲国产专区校园欧美| 国产精品欧美日韩一区| 欧美日韩色一区| 欧美国产精品劲爆| 久久久久网址| 亚洲综合久久久久| 亚洲夜晚福利在线观看|