我写想一个程序向网站发送数据,比如通过程序向某个论坛发帖。

解决方案 »

  1.   

    关键是了解 HTTP 协议提交数据的方式 POST、GET ……
    网上复制来的。重点在 subStr 字符串的构造。GET 的也差不多。==============================================
    Private Sub cmdSubmit_Click() 
    Dim subX As String, subStr As String 
    Dim subLen As Long If Trim(txtTitle.Text) = "" Then 
    txtTitle.SetFocus 
    Exit Sub 
    End If 
    If Trim(cmbCat.Text) = "" Then 
    cmbCat.SetFocus 
    Exit Sub 
    End If 
    If Trim(txtContent.Text) = "" Then 
    txtContent.SetFocus 
    Exit Sub 
    End If '向 www.hopeview.cn 网站提交文章,http://www.hopeview.cn/docs/ 下有一个 write.php 网页,将提交来的数据写入数据库。 
    '提交内容: Title 标题,cat 类别 content 文章内容。用于自动或批量向 hopeview.cn 提交文章。 
    subX = "Title=" & Trim(txtTitle.Text) & "&cat=" & cmbCat.Text & "&content=" & Trim(txtContent.Text) & "&submit1=提交" 
    subX = URLEncoding(subX) 
    subLen = Len(subX) 
    '下面是构造 POST 串, Referer 是 http://www.hopeview.cn/docs/write.php,表示是从这个网页提交的,Host 是接受数据的主机,此处是 www.hopeview.cn,改成您的对应网站就行了。 
    subStr = "POST /docs/write.php HTTP/1.1" & vbCrLf 
    subStr = subStr & "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*" & vbCrLf 
    subStr = subStr & "Referer: http://www.hopeview.cn/docs/write.php" & vbCrLf 
    subStr = subStr & "Accept-Language: zh-cn" & vbCrLf 
    subStr = subStr & "Content-Type: application/x-www-form-urlencoded" & vbCrLf 
    subStr = subStr & "UA-CPU: x86" & vbCrLf 
    subStr = subStr & "Accept-Encoding: gzip, deflate" & vbCrLf 
    subStr = subStr & "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; TencentTraveler ; .NET CLR 1.1.4322)" & vbCrLf 
    subStr = subStr & "Host: www.hopeview.cn" & vbCrLf 
    subStr = subStr & "Content-Length: " & subLen & vbCrLf 
    subStr = subStr & "Connection: Keep-Alive" & vbCrLf 
    subStr = subStr & "Cache-Control: no-cache" & vbCrLf & vbCrLf subStr = subStr & subX 
    If sockX.State <> sckConnected Then 
    sockX.Close 
    sockX.RemoteHost = "www.hopeview.cn" 
    sockX.RemotePort = 80 
    sockX.Connect 
    End If 
    While sockX.State <> sckConnected ' 7 
    DoEvents 
    If sockX.State = 9 Then 
    sockX.Close 
    sockX.Connect 
    End If 
    Wend 
    sockX.SendData subStr End Sub