• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    vb調用winInet API接口post數據到指定的url

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 48次 | 進入軟件測試論壇討論

    領測軟件測試網 'This module is called modWin.net.bas. Use the SplitAddr() function to get the address in the correct format for PostInfo.

    Option Explicit

    'Author:    Sam Huggill
    'Email:     sam@vbsquare.com

    Private Declare Function InternetOpen Lib "wininet.dll" _
             Alias "InternetOpenA" _
                (ByVal lpszCallerName As String, _
                 ByVal dwAccessType As Long, _
                 ByVal lpszProxyName As String, _
                 ByVal lpszProxyBypass As String, _
                 ByVal dwFlags As Long) As Long

          Private Declare Function InternetConnect Lib "wininet.dll" _
                Alias "InternetConnectA" _
                (ByVal hInternetSession As Long, _
                 ByVal lpszServerName As String, _
                 ByVal nProxyPort As Integer, _
                 ByVal lpszUsername As String, _
                 ByVal lpszPassword As String, _
                 ByVal dwService As Long, _
                 ByVal dwFlags As Long, _
                 ByVal dwContext As Long) As Long

       Private Declare Function InternetReadFile Lib "wininet.dll" _
                (ByVal hFile As Long, _
                 ByVal sBuffer As String, _
                 ByVal lNumBytesToRead As Long, _
                 lNumberOfBytesRead As Long) As Integer

       Private Declare Function HttpOpenRequest Lib "wininet.dll" _
                Alias "HttpOpenRequestA" _
                (ByVal hInternetSession As Long, _
                 ByVal lpszVerb As String, _
                 ByVal lpszObjectName As String, _
                 ByVal lpszVersion As String, _
                 ByVal lpszReferer As String, _
                 ByVal lpszAcceptTypes As Long, _
                 ByVal dwFlags As Long, _
                 ByVal dwContext As Long) As Long

       Private Declare Function HttpSendRequest Lib "wininet.dll" _
                Alias "HttpSendRequestA" _
                (ByVal hHttpRequest As Long, _
                 ByVal sHeaders As String, _
                 ByVal lHeadersLength As Long, _
                 ByVal sOptional As String, _
                 ByVal lOptionalLength As Long) As Boolean

       Private Declare Function InternetCloseHandle Lib "wininet.dll" _
                (ByVal hInternetHandle As Long) As Boolean

       Private Declare Function HttpAddRequestHeaders Lib "wininet.dll" _
                 Alias "HttpAddRequestHeadersA" _
                 (ByVal hHttpRequest As Long, _
                 ByVal sHeaders As String, _
                 ByVal lHeadersLength As Long, _
                 ByVal lModifiers As Long) As Integer


    Public Function PostInfo$(srv$, port$, script$, postdat$)

      Dim hInternetOpen As Long
      Dim hInternetConnect As Long
      Dim hHttpOpenRequest As Long
      Dim bRet As Boolean
      
      hInternetOpen = 0
      hInternetConnect = 0
      hHttpOpenRequest = 0
      
      'Use registry access settings.
      Const INTERNET_OPEN_TYPE_PRECONFIG = 0
      hInternetOpen = InternetOpen("http generic", _
                      INTERNET_OPEN_TYPE_PRECONFIG, _
                      vbNullString, _
                      vbNullString, _
                      0)
      
      If hInternetOpen <> 0 Then
         'Type of service to access.
         Const INTERNET_SERVICE_HTTP = 3
         Const INTERNET_DEFAULT_HTTP_PORT = 80
         'Change the server to your server name
         hInternetConnect = InternetConnect(hInternetOpen, _
                            srv$, _
                            port$, _
                            vbNullString, _
                            "HTTP/1.0", _
                            INTERNET_SERVICE_HTTP, _
                            0, _
                            0)
      
         If hInternetConnect <> 0 Then
          'Brings the data across the wire even if it locally cached.
           Const INTERNET_FLAG_RELOAD = &H80000000
           hHttpOpenRequest = HttpOpenRequest(hInternetConnect, _
                               "POST", _
                               script$, _
                               "HTTP/1.0", _
                               vbNullString, _
                               0, _
                               INTERNET_FLAG_RELOAD, _
                               0)
      
            If hHttpOpenRequest <> 0 Then
               Dim sHeader As String
               Const HTTP_ADDREQ_FLAG_ADD = &H20000000
               Const HTTP_ADDREQ_FLAG_REPLACE = &H80000000
      sHeader = "Content-Type: application/x-www-form-urlencoded" _
                 & vbCrLf
               bRet = HttpAddRequestHeaders(hHttpOpenRequest, _
                 sHeader, Len(sHeader), HTTP_ADDREQ_FLAG_REPLACE _
                 Or HTTP_ADDREQ_FLAG_ADD)
      
               Dim lpszPostData As String
               Dim lPostDataLen As Long
      
               lpszPostData = postdat$
               lPostDataLen = Len(lpszPostData)
               bRet = HttpSendRequest(hHttpOpenRequest, _
                      vbNullString, _
                      0, _
                      lpszPostData, _
                      lPostDataLen)
      
               Dim bDoLoop             As Boolean
               Dim sReadBuffer         As String * 2048
               Dim lNumberOfBytesRead  As Long
               Dim sBuffer             As String
               bDoLoop = True
               While bDoLoop
                sReadBuffer = vbNullString
                bDoLoop = InternetReadFile(hHttpOpenRequest, _
                   sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
                sBuffer = sBuffer & _
                     Left(sReadBuffer, lNumberOfBytesRead)
                If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
               Wend
               PostInfo = sBuffer
               bRet = InternetCloseHandle(hHttpOpenRequest)
            End If
            bRet = InternetCloseHandle(hInternetConnect)
         End If
         bRet = InternetCloseHandle(hInternetOpen)
      End If
    End Function

    Public Sub SplitAddr(ByVal addr$, srv$, script$)
    'Inputs: The full url including http://
    ' Two variables that will be changed
    '
    'Returns: Splits the addr$ var into the server name
    ' and the script path

      Dim i%

      i = InStr(addr$, "/")
      srv$ = Mid(addr$, i + 2, Len(addr$) - (i + 1))
      i = InStr(srv$, "/")
      script$ = Mid(srv$, i, Len(srv$) + 1 - i)
      srv$ = Left$(srv$, i - 1)

    End Sub

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>