博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过WebClient模拟post上传文件到服务器
阅读量:6965 次
发布时间:2019-06-27

本文共 1734 字,大约阅读时间需要 5 分钟。

写在前面

最近一直在研究sharepoint的文档库,在上传文件到文档库的过程中,需要模拟post请求,也查找了几种模拟方式,webclient算是比较简单的方式。

一个例子

这里写一个简单接受post请求的aspx页面,代码如下:

1 namespace Wolfy.UploadDemo 2 { 3     public partial class Default : System.Web.UI.Page 4     { 5         protected void Page_Load(object sender, EventArgs e) 6         { 7             string fileName = Request.QueryString["url"]; 8             if (!string.IsNullOrEmpty(fileName)) 9             {10                 Stream st = Request.InputStream;11                 string fileSavePath = Request.MapPath("~/upload/") + fileName;12                 byte[] buffer=new byte[st.Length];13                 st.Read(buffer, 0, buffer.Length);14                 if (!File.Exists(fileSavePath))15                 {16                     File.WriteAllBytes(fileSavePath, buffer);17                 }18                19             }20         }21     }22 }

这里使用QueryString接收url参数,使用请求的输入流接受文件的数据。

然后,使用webclient写一个模拟请求的客户端,代码如下:

1 namespace Wolfy.UploadExe 2 { 3     class Program 4     { 5         static void Main(string[] args) 6         { 7             WebClient client = new WebClient(); 8             client.QueryString.Add("url", "1.png");10             using (FileStream fs = new FileStream("1.png", FileMode.Open))11             {12                 byte[] buffer = new byte[fs.Length];13                 fs.Read(buffer, 0, buffer.Length);14                 client.UploadData("http://localhost:15887/Default.aspx", buffer);15             }16 17         }18     }19 }

调试状态运行aspx,然后运行exe控制台程序

如果有验证信息,可以加上这样一句话:

1 client.Credentials = new NetworkCredential("用户名", "密码", "域");

总结

由于目前做的项目,移动端app不能提供用户名和密码,必须使用证书进行认证,发现webclient无法支持。就采用HttpWebRequest类进行模拟了。关于它的使用是下文了。

转载于:https://www.cnblogs.com/wolf-sun/p/4436930.html

你可能感兴趣的文章
Java两个时间之间差多少秒
查看>>
为读者更有目的性先放出《超容易的Linux系统管理入门书》一书的学习重点
查看>>
android Application.mk文件的APP_MODULES:
查看>>
Nginx配置文件nginx.conf中文详解
查看>>
无锁队列的实现
查看>>
SpringSecurity重写LogoutFilter
查看>>
使用idfc-proguard-maven-plugin混淆优化Jave Web工程二
查看>>
tomcat 设置内存
查看>>
怎么一边敲代码还能一边赚点钱,一字一字敲的,不喜勿喷哈,IOS手机看进来...
查看>>
libevent evhttp_uri_get_query coredump
查看>>
程序员该当命归何处?
查看>>
Log4j调试
查看>>
Most common latch classes and what they mean
查看>>
java 获取数据库表结构通用方法
查看>>
tc命令——Linux基于IP进行流量限速
查看>>
linux centos yum安装LAMP环境
查看>>
Spring中的@Scope注解
查看>>
我的友情链接
查看>>
我用的Android Studio插件
查看>>
有关linq to sql中数据类型转换问题
查看>>