使用C#通过HTTP POST发送文件我一直在寻找和阅读它,并没有任何真正有用的东西。我正在编写一个小型C#win应用程序,允许用户将文件发送到Web服务器,而不是通过FTP,而是通过HTTP使用POST。可以把它想象成一个Web表单,但在Windows应用程序上运行。我使用这样的东西创建了我的HttpWebRequest对象HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest并且还设置了Method,ContentType和ContentLength属性。但那就是我能走的远。这是我的一段代码:HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest;req.KeepAlive = false;req.Method = "POST";req.Credentials = new NetworkCredential(user.UserName, user.UserPassword);req.PreAuthenticate = true;req.ContentType = file.ContentType;req.ContentLength = file.Length;HttpWebResponse response = null;try{
response = req.GetResponse() as HttpWebResponse;}catch (Exception e) {}所以我的问题基本上是如何通过HTTP POST用C#发送文件(文本文件,图像,音频等)。谢谢!
3 回答
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
仅发送原始文件:
using(WebClient client = new WebClient()) { client.UploadFile(address, filePath);}
如果你想用一个模拟一个浏览器表单<input type="file"/>
,那就更难了。有关multipart / form-data答案
慕森王
TA贡献1777条经验 获得超3个赞
对我来说,client.UploadFile
仍然将内容包装在一个多部分请求中,所以我必须这样做:
using (WebClient client = new WebClient()){ client.Headers.Add("Content-Type", "application/octet-stream"); using (Stream fileStream = File.OpenRead(filePath)) using (Stream requestStream = client.OpenWrite(new Uri(fileUploadUrl), "POST")) { fileStream.CopyTo(requestStream); }}
- 3 回答
- 0 关注
- 3201 浏览
添加回答
举报
0/150
提交
取消