0
我是ApiControllers的新手,並且正在從客戶端向api發送文件並從此處保存文件進行測試。下面的代碼確實有效,並且文件從客戶端「複製」到服務器,但響應消息雖然是「204無內容」 - 我應該提防這裏的任何事嗎?將文件發佈到ApiController
的ApiController代碼是這樣的:
[HttpPost]
[Route("api/UploadFile")]
public async Task UploadFile()
{
string fileName = "myfilename.txt";
Stream requestStream = await Request.Content.ReadAsStreamAsync();
using (FileStream fileStream = File.Create(@"C:\myDropFolder\" + fileName))
{
await requestStream.CopyToAsync(fileStream);
}
}
和呼叫到客戶端看起來像這樣,從一個控制檯應用程序測試:
class Program
{
static void Main(string[] args)
{
try
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost:1741/api/UploadFile/");
request.Method = WebRequestMethods.Http.Post;
byte[] fileToSend = File.ReadAllBytes(@"C:\myDropFolder\tester.txt");
request.ContentLength = fileToSend.Length;
using (Stream requestStream = request.GetRequestStream())
{
// Send the file as body request.
requestStream.Write(fileToSend, 0, fileToSend.Length);
requestStream.Close();
}
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
Console.WriteLine("HTTP/{0} {1} {2}", response.ProtocolVersion, (int)response.StatusCode, response.StatusDescription);
Console.ReadLine();
}
catch (Exception)
{
throw;
}
}
}
非常感謝你的解釋阿林! – micknt