我创建了一个ASP.NET Web API,它有一个名为InsertImage
的控制器。这有一个HttpPost
方法,可以将数据插入数据库,并且是ImageData
方法。此方法接收类型为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; }
}
的对象作为参数。控制器和参数类的代码如下:
ImageValue
我想从客户端测试它。您可以注意到,ImageData
类的byte
属性是json
数组。不确定如何将C#类参数传递给此方法。理想情况下,我想将参数作为json
传递,我不确定如何为此目的构造SELECT
M.DATE_DOCU,
(SELECT I.LIN FROM INVE01 I WHERE I.CVE_ART = M.CVE_ART) AS LINE
FROM
MINVE01 M
GROUP BY
M.DATE_DOCU,
M.CVE_ART
。我也不确定是否可以使用名为postman的chrome应用程序进行测试。
答案 0 :(得分:2)
打开邮递员输入你的网址动作:
添加标题:Content-Type - application / json。
在body标签中选中“raw”(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
如果您想进行更好的测试,更好的解决方案是编写单元测试。
答案 1 :(得分:2)
这是我用来做的事情: 使用像Postman或Fiddler这样的REST客户端测试程序。我使用的是Postman,它是Google Chrome的应用程序。
为了便于构建JSON,您可以在控制器上创建一个HttpGet方法,并返回一个伪造的ImageData
并从Postman调用它。在这里,您将看到JSON并将其用于POST方法的输入。
public class ImageSaveController : ApiController
{
public ImageData Get()
{
return new ImageData
{
// insert test data here
};
}
[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,"");
}
}