我想使用HttpWebRequest以異步方式上傳大文件。在C#.Net中使用HttpWebRequest的大文件異步上傳
說我上傳一個音頻文件使用HttpWebRequest &在接收端它應該得到流&播放音頻文件。
有沒有ref。的任何代碼或示例availabel。 ?
請提供是否有任何例子。
在此先感謝
我想使用HttpWebRequest以異步方式上傳大文件。在C#.Net中使用HttpWebRequest的大文件異步上傳
說我上傳一個音頻文件使用HttpWebRequest &在接收端它應該得到流&播放音頻文件。
有沒有ref。的任何代碼或示例availabel。 ?
請提供是否有任何例子。
在此先感謝
做到這一點很容易。注意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
?如果你必須使用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;
}
是的,它必須是HttpWebRequest! – usr021986 2011-04-25 08:34:22
將其分解爲單獨的部分並加以處理(並隨時提出問題)。就目前而言,這個問題太寬泛,無法提供簡明扼要的答案。 – 2015-09-24 14:33:47