【发布时间】:2010-11-11 00:17:55
【问题描述】:
我一直在搜索和阅读这方面的内容,但没有找到任何真正有用的东西。
我正在编写一个小型 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# 发送文件(文本文件、图像、音频等)。
谢谢!
【问题讨论】:
-
8 年后我也有同样的需求:我有一个网站接受文件上传,显示一些关于它的内容,并允许用户下载报告,如果他们愿意的话,但现在他们想要一个 API,所以这种方法似乎是对客户端实现进行白痴验证的最简单方法:他们只需向我发送一个字节数组,然后我在 API 调用中处理服务器上所有隐含的用户操作,并返回报告他们最终想要取回的文件而不是网站体验。无需完全重构网站及其报告生成过程来处理此问题。
标签: c# http post system.net