更新
见下面的第3篇文章.
需要自动将文件上传到网络(无需浏览器).主机 - 迷你文件主机v1.2(如果这很重要).没有在文档中找到特定的api,所以最初我在Firebug中嗅探浏览器请求如下:
Params : do
Value : verify
POST /upload.php?do=verify HTTP/1.1
Host: webfile.ukrwest.net
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 4.0.20506)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://filehoster.awardspace.com/index.php
Content-Type: multipart/form-data; boundary=---------------------------27368237179714
Content-Length: 445
-----------------------------27368237179714
Content-Disposition: form-data; name="upfile"; filename="Test.file"
Content-Type: application/octet-stream
12345678901011121314151617sample text
-----------------------------27368237179714
Content-Disposition: form-data; name="descr"
-----------------------------27368237179714
Content-Disposition: form-data; name="pprotect"
-----------------------------27368237179714--
Run Code Online (Sandbox Code Playgroud)
在这里,我们可以看到参数,标题,内容类型和信息块(1 - 文件名和类型,2 - 文件内容,3 - 附加参数 - 描述和密码,不一定适用).所以我创建了一个一步一步模拟这种行为的类:在url上使用HttpWebRequest,使用所需的参数来请求,使用StringBuilder形成请求字符串并将它们转换为字节数组,使用FileStream读取文件,将所有内容放入MemoryStream然后将其写入请求(从CodeProject的一篇文章中获取代码的主要部分,它将文件上传到Rapidshare主机).整洁,但......它似乎不起作用:(.结果它返回初始上传页面,而不是带有我可以解析并呈现给用户的链接的结果页面......以下是上传者的主要方法课程:
// …Run Code Online (Sandbox Code Playgroud)