利用WebClient 模拟Form Post请求上传文件

一.准备工作
1.打开开发工具F12,查看NetWork,首先先观察目标网站上的请求头
利用WebClient 模拟Form Post请求上传文件
我们需要在代码中添加这些请求头内容,比较重要的是Content-TypeUser-Agent,当然可以全部添加;
其中Content-Type 的 boundary(自己随机生成,或者用web端请求生成的)是为了分割数据用的,需要注意的是 "----"的数量 。
2.查看Form表单中的内容
利用WebClient 模拟Form Post请求上传文件
利用WebClient 模拟Form Post请求上传文件
需要按照上面字符排列的顺序(包括了换行符),进行构造字符串,利用boundary分割不同的数据。

二.写代码
1.利用C# 封装的WebClient

其中需要注意的是:
①一定要看清 Content-Type 中boundary 前面有几个“”;(我因为这个原因,服务器返回403
②Form表单数据构造一定要与页面发起的请求一致,分割线也是一样的。
③Form表单数据要转成字节流
代码参考C#使用WebClient上传文件并同时Post表单数据字段到服务端