vb中 winsock 下载文件问题

wzxiaodu 2003-05-19 09:24:33
本人在网络上找到一篇下载代码:
http://vbboshi.myrice.com/vbtech/network/page_3/file66.htm
*************************
Dim strCommand As String
Dim strWebPage As String
2.把如下代码加到Command1的Command1_Click事件:
Private Sub Command1_Click()
Winsock1.RemoteHost = "vbboshi.myrice.com" '设置连接的网址
Winsock1.RemotePort = 80 '设置要连接的远程端口号
Winsock1.Connect '返回与远程计算机的连接。
End Sub
3.把如下代码加到Winsock1的Connect事件:
Private Sub Winsock1_Connect() '当一个 Connect 操作完成时发生
On Error Resume Next
strWebPage="http://vbboshi.myrice.com/vbtech/network/page_3/file66.htm" '要下载的文件
strCommand = "GET " + strWebPage + " HTTP/1.0" + vbCrLf ''GET 为FTP命令 取得文件
strCommand = strCommand + "Accept: */*" + vbCrLf '这句可以不要
strCommand = strCommand + "Accept: text/html" + vbCrLf '这句可以不要
strCommand = strCommand + vbCrLf '记住一定要加上vbCrLf
'Debug.Print strCommand '注:你可以用Debug.Print strCommand 来查看一下格式
Winsock1.SendData strCommand '给远程计算机发送数据
End Sub
4.把如下代码加到Winsock1的DataAmival事件:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) '取得数据时产生该事件
On Error Resume Next '在错误处理程序结束后,恢复原有的运行
Dim webData As String
Winsock1.GetData webData, vbString '检取当前的数据块
Text1.Text = Text1.Text + webData
End Sub
****************************

在text1.text中开头有
“HTTP/1.1 200 OK
Date: Mon, 19 May 2003 20:22:18 GMT
Server: Apache/1.3.26 (Unix) mod_layout/3.2
Last-Modified: Sat, 01 Jun 2002 00:42:31 GMT
ETag: "7fea68-c9c-3cf81877"
Content-Length: 3228
Accept-Ranges: bytes
Connection: close
Content-Type: text/html”
然后才是要下载的文件“http://vbboshi.myrice.com/vbtech/network/page_3/file66.htm”

我想知道开头的一段信息的长度固定吗?
如何把下载的文件保存下来?(就是不接收开头信息呢而存成文件)
+++++++++++++++++++
呵呵,本人有点口齿不清啊...........不知如何表达!
...全文
18 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wzxiaodu 2003-05-22
INET控件我试过,我知道
我是想学习一下winsock下载
如何载一个文件等,如何比较方便的去掉前面的信息,而把文件存下来?

我是新手,请多指教!!
回复
vataii 2003-05-20
前面的是HTTP文件头咯,这个东西格式是固定的咯,具体内容有出入。HTTP请求简单的分为两类,一类是提交POST,另一类是获取,GET比如偶回复你的帖子需要提交,偶需要看你的帖子必须GET到浏览器咯。

简单的get http://expert.csdn.net/expert/xxx.html就能下载一个网页到本地

用sniffer抓包就行咯
呵呵
回复
qiangsheng 2003-05-19
长度不会是固定的,会根据对方服务器的不同、文件长度的不同而有所改变。
但是我想,它前面信息的项目数是不会变的,你读出指定行删除就可以了。
另外,也可以用INET控件完成这个任务。
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7522

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2003-05-19 09:24
社区公告
暂无公告