2008-11-20 16:09:28 发表
编辑
multipart/form-data编码的POST请求格式与application/x-www-form-urlencoded完全不同
--------------------------------------------------
C#模拟提交表单 post-带附件的表单普通的模拟提交表单的操作只要构建html协议中的数据就行,但是表单中如果含有file的话, 也就是说含有附件上传的内容的话怎样提交呢? 使用multipart/form-data发送文件 如果要在客户端向服务器上传文件,我们就必须模拟一个POST multipart/form-data类型的请求,Content-Type必须是multipart/form-data。 以multipart/form-data编码的POST请求格式与application/x-www-form-urlencoded完全不同,multipart/form-data需要首先在HTTP请求头设置一个分隔符,例如ABCD: 我们模拟的提交要设定 content-type不同于非含附件的post时候的content-type,这里需要: ("Content-Type", "multipart/form-data; boundary=ABCD"); 然后,将每个字段用“--分隔符”分隔,最后一个“--分隔符--”表示结束。例如,要上传一个title字段"Today"和一个文件C:\1.txt,HTTP正文如下: --ABCD Content-Disposition: form-data; name="title" \r\n Today --ABCD Content-Disposition: form-data; name="