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