2014年4月10日 星期四

http post呼叫方式[VB 6]

最近工作需要用http post方式開啟瀏覽器
前端是用很古老的VB 6開發
上網拜讀了好久有用winsock直接呼叫的
也有用win API HttpSendRequestA建立Internet連線方式來處理的
目前看到最快的方式是呼叫MyIE.Navigate來執行
作法如下
Private Sub Command1_Click()
    Dim vPost As Variant
    Dim vHeaders As Variant
    Dim cPostData as String
    Set MyIE = New InternetExplorer
    
    ReDim aByte(0) As Byte
    cPostData = "你所需要提供的參數"
    PackBytes aByte(), cPostData
   
    vPost = aByte
    vHeaders = "Content-Type: application/x-www-form-urlencoded"
   
    MyIE.Visible = True    
    MyIE.Navigate "http://www.csdn.net/member/logon.asp", , , vPost, vHeaders
   
End Sub
Private Sub PackBytes(ByteArray() As Byte, ByVal PostData As String)
    iNewBytes = Len(PostData) - 1
    If iNewBytes < 0 Then Exit Sub
    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

其中vPost內容不可直接用String顯示,必須經過PackBytes將內容轉換成ASCII才有作用

沒有留言:

張貼留言