我想使用 Web API 构建一些端点供应用程序使用。我希望它做的第一项工作是允许客户端将文件上传到服务器。
客户端将运行某种 .NET 应用程序,可能是控制台应用程序或其他东西。它不会是使用表单元素或文件输入的网页。
我认为 Web API 看起来像这样:
public class FileController : ApiController
{
public bool Post(File newFile)
{
return true;
}
}
使用它作为模型类:
public class File
{
public string name { get; set; }
public Stream uploadStream { get; set; }
}
我确信这是非常错误的,但这是我的第一个 Web API。
我正在尝试在控制台应用程序中对此进行测试:
namespace TestFileUpload
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Starting the test...");
using (FileStream readstream = new FileStream(@"C:\\Test\Test2.txt", FileMode.Open, FileAccess.Read))
{
WebAPI.Classes.File newFile = new WebAPI.Classes.File()
{
name = "Test.txt",
uploadStream = readstream
};
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:50326");
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response;
response = client.PostAsJsonAsync("http://localhost:50326/api/file", newFile).Result;
Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
};
Console.ReadLine();
}
}
}
现在,当我尝试获取响应时出现超时错误:“从 'System.IO.FileStream' 上的 'ReadTimeout' 获取值时出错。”
帮助?