有人可以告诉我如何测试此功能:
[RoutePrefix("service")]
public class TestControler : ApiController
{
[Route("function-route")]
[HttpPost]
public HttpResponseMessage Testfunction(TestData t_testData )
{
...
HttpResponseMessage httpResponseMessage = Request.CreateResponse(HttpStatusCode.OK);
return httpResponseMessage;
}
}
public class TestData
{
public byte[] PreviewImage { get; set; }
public byte[] FileAsByteArray { get; set; }
}
我们通过以下方式启用了Swagger:
public void Configuration(IAppBuilder appBuilder)
{
// Configure Web API for self-host.
HttpConfiguration config = new HttpConfiguration();
//Using AttributeRoutes
config.MapHttpAttributeRoutes();
//Swagger
config.EnableSwagger(c =>{
c.SingleApiVersion("v1", "My Test API");
}).EnableSwaggerUi();
appBuilder.UseWebApi(config);
}
我真的不知道如何通过招摇,邮递员或卷曲来测试此API。问题是byte [],如何发送呢? 有人可以测试这种api吗?
或者,如果有另一种方式发送没有字节[]的任何文件(pdf,txt,docx,...)与任何图片(jpg,png,...)组合,我将很高兴听到。
答案 0 :(得分:4)
我将对字节数组进行base64编码,并将模型属性从字节数组byte[]
更改为string
。它应该允许您将这些字符串发布到控制器上,在其中可以将它们转换回字节数组。
要使用base64字符串进行编码,请使用string byteString = Convert.ToBase64String(byteArray)
,然后使用byte[] byteArray = Convert.FromBase64String(byteString)
进行转换。
要使用邮递员进行测试,您可以使用JavaScript函数atob()
和btoa()
将字节数组转换为以64为基数的字符串,反之亦然。