如何通过webbrowser1的 
Content-Type: multipart/form-data; 方式向网页POST数据 
POST数据分 
application/x-www-form-urlencoded 
和 
Content-Type: multipart/form-data 
两种方式 
application/x-www-form-urlencoded方式本人巳经知道了 
现在我想要知道multipart/form-data方式,有谁能帮我写一个实例吗? 
下面是我的实现方法,不过POST后那个vbCrLf变成了A了,谁帮我改正一下啊,一定加分 
sub command1_click() 
  postDataStr = "" 
    HeadersStr = "Accept: application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/QVOD, application/QVOD, */*" & vbCrLf 
    HeadersStr = HeadersStr & "Accept-Language: zh-cn" & vbCrLf 
    HeadersStr = HeadersStr & "Content-Type: multipart/form-data; boundary=---------------------------7d9257d1bd04ba" 
    HeadersStr = HeadersStr & "Accept-Encoding: gzip, deflate" & vbCrLf 
    HeadersStr = HeadersStr & "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 
    
postDataStr = "-----------------------------7d93d8646045e" & vbCrLf 
postDataStr = postDataStr & "Content-Disposition: form-data; name=""action""" & vbCrLf & vbCrLf 
postDataStr = postDataStr & "publish/publishAction" & vbCrLf 
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf 
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.r""" & vbCrLf & vbCrLf 
postDataStr = postDataStr & "55" & vbCrLf 
postDataStr = postDataStr & "-----------------------------7d93d8646045e--" 
    Dim aByte() As Byte 
      PackBytes aByte(), URLEncode(postDataStr) 
      WebBrowser1.Navigate "http://sell.taobao.com/auction/publish/publish.htm", 0, "", aByte, HeadersStr 
END SUB Private Sub PackBytes(ByRef ByteArray() As Byte, ByVal PostData As String) 
      Dim iNewBytes As Long, mPostData As String 
      mPostData = PostData 
      iNewBytes = Len(mPostData) - 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(mPostData, i + 1, 1) 
      If ch = Space(1) Then 
          ch = "+" 
      End If 'Debug.Print ch, Asc(ch) 
      ByteArray(i) = Asc(ch) 
      Next 
End Sub 
上面代码是我的方法,不过,POST后那个vbCrLf 变为A了 
它是通过PackBytes将 Space(1)转为 + 号 
谁能说一下将vbCrLf变为什么 我现在编一个程序,只能用webbrowser1控件POST才行,所以没办法 请大家用 webbrowser1控件来实现

解决方案 »

  1.   

    参考VB向网页POST数据http://topic.csdn.net/u/20071127/13/46ef5366-6a5c-48f9-b26f-206d0ac42e63.html
      

  2.   

    不是那样的哦,请看清我的问题----------------------------------------------------------------------- 
                       人脑潜能开发,潜能开发音乐下载 www.qn21.com
      

  3.   

    你的 URLEncode() 函数功能不完整,应该将 vbCrLf (2个字符)转变成 "%0D%0A"(6个字符)。
      

  4.   

    终于自己搞定了,嘿嘿
    -------------------------------------------------------------------------------------
                           催眠音乐mp3下载,潜意识音乐, 潜能21网 www.qn21.com