c# - 如何测试附加文件的 ASP NET ashx 处理程序

标签 c# asp.net ashx

我有一个 C# ashx 处理程序,可以检测附加的文件。效果很好。

但是,我依靠第三方公司编写软件来将文件发送给处理程序(长话短说)。我需要测试我的处理程序是否正常工作,我们和第三方公司之间的时差正在成为一场噩梦。

场景是第 3 方软件每 30 秒向处理程序发送一次文件,我需要测试它的工作原理,并且听起来不愚蠢,我想我问 stackoverflow :)

我只想使用测试单元或其他东西来测试我的 ashx 处理程序,但不知道从哪里开始。输入“handler.ashx?filename=12345.csv”很有帮助,但没有附加实际文件!

任何建议都会很棒。

最佳答案

据我了解,您有一个 ashx 处理程序,您可以将文件上传到其中,并且您想测试它。

我附上了一个示例测试,该测试假设 ashx 处理程序对文件附件使用 POST 请求。

[TestMethod]
public void TestCallUploadHandler()
{
    const string FILE_PATH = "C:\\foo.txt";
    const string FILE_NAME = "foo.txt";
    string UPLOADER_URI =
        string.Format("http://www.foobar.com/handler.ashx?filename={0}", FILE_NAME);

    using (var stream = File.OpenRead(FILE_PATH))
    {
        var httpRequest = WebRequest.Create(UPLOADER_URI) as HttpWebRequest;
        httpRequest.Method = "POST";
        stream.Seek(0, SeekOrigin.Begin);
        stream.CopyTo(httpRequest.GetRequestStream());

        var httpResponse = httpRequest.GetResponse();
        StreamReader reader = new StreamReader(httpResponse.GetResponseStream());
        var responseString = reader.ReadToEnd();

        //Check the responsestring and see if all is ok
    }
}

基本上,您所做的就是为 POST 创建一个 WebRequest,并将文件流附加到其请求,将文件名附加到其查询字符串。

关于c# - 如何测试附加文件的 ASP NET ashx 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11955462/

相关文章:

asp.net - http post请求从android发送到asp.net中的ashx。无法接收数据

jquery - JQuery 是否缓存图像?

c# - Entity Framework 核心 : ToList() vs ToListAsync()

asp.net - "Exception has been thrown by the target of an invocation"错误(mscorlib)

c# - 自定义警报框显示不正确

c# - 当我从子门户访问 ashx 时,为什么 DNN 会杀死我的身份验证 cookie?

c# - 我可以使用 HTTP 模块更改传入 HTTP 请求的内容吗?

c# - socket.sendTo是否关闭套接字? [复制]

c# - 在 MVVM (WPF) 应用程序中更改 ListView 上的筛选器后如何滚动到 View ?

asp.net - 如何在 HttpWebRequest 期间维护 session 值?