在C#.Net中使用HttpWebRequest异步上传大文件

我想使用HttpWebRequest以异步方式上传大文件。

假设我使用HttpWebRequest上传音频文件&在接收端,它应该获取流并播放音频文件。

是否有任何代码或示例可用于ref。 ?

如果有任何例子,请提供。

提前致谢

如果您必须使用HttpWebRequest并假设您的输入数据流不大,则可以通过执行此操作使上载过程成为异步。 请注意,BeginGetResponse实际上是打开与远程服务器的连接并处理上载的内容。

public void UploadAsync() { var data = GetStream("TestFile.txt"); var request = (HttpWebRequest)WebRequest.Create(new Uri("http://example.com/UploadData")); request.Method = "POST"; data.CopyTo(request.GetRequestStream()); request.BeginGetResponse(DataUploadCompleted, request); Console.WriteLine("Upload Initiated."); } private void DataUploadCompleted(IAsyncResult ar) { var request = (HttpWebRequest)ar.AsyncState; var response = request.EndGetResponse(ar); Console.WriteLine("Upload Complete."); } 

它必须是HttpWebRequest吗? 您可以使用WebClient对象轻松完成此操作

 public void UploadFile(byte[] fileData) { var client = new WebClient(); client.UploadDataCompleted += client_UploadDataCompleted; client.UploadDataAsync(new Uri("http://myuploadlocation.example.com/"), fileData); } void client_UploadDataCompleted(object sender, UploadDataCompletedEventArgs e) { if (e.Error != null) { MessageBox.Show(e.Error.Message); } byte[] response = e.Result; }