multipart/form-data方式HTTP协议大致如下,红色是额外加上的:
POST /msb/WebForm1.aspx HTTP/1.1
Connection: Keep-Alive
Content-Length: 458
Content-Type: multipart/form-data; boundary=-----------------------------7d6bb34502ce[上传方式,边界]
Accept: */*
Expect: 100-continue
Host: localhost
Referer: http://mtv.1ting.com/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
-------------------------------7d6bb34502ce[边界这里开头多了2个中划线]
Content-Disposition: form-data; name="key1[表单域名]"
ffffffffffffffffffffffffffffffffffffffffffffffffffffff[表单域值]
-------------------------------7d6bb34502ce[边界这里开头多了2个中划线]
Content-Disposition: form-data; name="file[文件类型表单域名]"; filename="d:/1.rar[文件名]"
Content-Type: application/x-msdownload[文件类型]
[文件内容]
-------------------------------7d6bb34502ce--[最后一个边界,开头和结尾都多了2个中划线]
调用代码:
Dim a As New ArrayList a.Add(New EntityFormValue("key1", "key1")) '表单 a.Add(New EntityFormValue("key2", "value2")) '表单 a.Add(New EntityFormFile("file", "d:/1.rar")) '文件 Dim http As New HttpProc("http://localhost/msb/WebForm1.aspx") Console.WriteLine(http.PostMultipartForm(a)) |
关于HttpProc
http是我在.net frameWork支持http协议基础上拓展的一个类,用来简化http的GET和POST操作,可以满足日常大部分的 HTTP处理,这在我的csdn小助手各版本里面均有体现。
下面是一个模拟登陆,可以看到代码已经很简洁了:
Dim Url As String = "http://localhost/login.aspx"‘地址 |
本文原始发表地址:http://blog.csdn.net/Qqwwee_Com/archive/2006/04/08/655711.aspx(转贴请保留)