c# - 如何测试接收类的 web api post 方法

标签 c# json asp.net-web-api postman

我创建了一个 ASP.NET Web API,它有一个名为 ImageSaveController 的 Controller 。它有一个 InsertImage 方法将数据插入数据库,并且是一个 HttpPost 方法。此方法接收类型为 ImageData 的对象作为参数。 Controller 和参数类的代码如下:

public class ImageSaveController : ApiController
{
    [HttpPost]
    public IHttpActionResult InsertImage(ImageData imageData)
    {
        System.Data.SqlClient.SqlConnection conn = null;
        try
        {               
            //Image save to database code here
        }
        catch (Exception ex)
        {
            return Content(HttpStatusCode.NotModified, ex.Message);
        }
        finally
        {
            if (conn != null)
                conn.Close();
        }
        return Content(HttpStatusCode.OK,""); 
    }
}

//ImageData class
public class ImageData
{
    public int Id { get; set; }
    public byte[] ImageValue { get; set; }
}

我想从客户端测试它。正如您所注意到的,ImageData 类的 ImageValue 属性是一个 byte 数组。不确定如何将 C# 类参数传递给此方法。理想情况下,我想将参数作为 json 传递,但我不确定如何为此构建 json 。我也不确定是否可以使用名为 postman 的 chrome 应用程序对其进行测试。

最佳答案

打开 postman 输入您的操作网址:
添加 header :Content-Type - application/json。
在正文选项卡中选中“原始”(JSON) 并输入您的数据。

POST /api/ImageSave/InsertImage/ HTTP/1.1
Host: localhost:32378
Content-Type: application/json
Cache-Control: no-cache
{
    "id" : 1,
    "imageValue" : [11,141,123,121]
}

来源Web API 2 POST request simulation in POSTMAN Rest Client

如果你想做出好的测试,更好的解决方案是编写单元测试。

关于c# - 如何测试接收类的 web api post 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38418787/

相关文章:

ajax - 使用 ajax 和 web api 进行长轮询有什么问题……它会杀死我的服务器吗?和字符串比较

c# - 如何从字符串中删除所有空格?

c# - 主窗口关闭时如何关闭所有窗口

c# - 未找到返回有效的 Azure 存储 URI

python - 从嵌套的 json 文件将新列展平并构建到 Pandas df 中

c# - 在 ASP.NET Core 3.1 中使用多个身份验证方案?

asp.net - 使用 OAuth 2 对 ASP.NET Web API 进行身份验证 - 要使用的最佳授权授予类型?

c# - 将 intptr 转换为 ulong 数组

json - 如何将数据从 CosmosDB 中的文档传输到 Azure SQL 数据库?

c# - ASP.Net MVC 返回 Json 作为 IActionResult 修改对象键名