如何将带有字节数组的json发送到web api / postman

时间:2016-09-13 20:44:49

标签: json api asp.net-web-api postman

我希望能够发送给两者 1. Web Api 2.邮差到Web Api

我可以对Web Api进行简单的GET调用并使用Postman,但我不理解的是能够发送字节数组。

对于Postman,我知道它是 PUT

这是Web api签名

[Route("api/Manifest/VerifyChain/")]
[ResponseType(typeof (VerifyManifestChainResponse))]
public IHttpActionResult PutVerifyManifestChain([FromBody] VerifyManifestChainRequest message)
{
   //.....
}

请求类

public class VerifyManifestChainRequest
{
    public byte[] CalculatedMeasurement { get; set; }
    public string DeviceId { get; set; }
}

我是否应该使用邮递员在Body中以原始格式发送JSON?

{
   "CalculatedMeasurement": ?????,
   "DeviceId": "00022B9A000000010001"
}

我知道当网页调用Web Api时,我确实在Watch中看到了这一点

enter image description here

邮差摘要

enter image description here

如何通过Postman发送数据,也很高兴知道如何发送到web api http://localhost:42822/api/Manifest/VerifyChain/

3 个答案:

答案 0 :(得分:0)

认为您的Webapi方法需要[HttpPut]

[HttpPut]
[Route("api/Manifest/VerifyChain/")]
[ResponseType(typeof (VerifyManifestChainResponse))]
public IHttpActionResult PutVerifyManifestChain([FromBody] VerifyManifestChainRequest message)
{
   //.....
}

在邮递员中,您的邮件正文将是一个数组

{
  "CalculatedMeasurement":[71,107,98],
  "DeviceId": "afdghufsdjdf"
} 

答案 1 :(得分:0)

您必须将文件转换为base64并以字符串形式发送。

  1. 您的WebAPI方法缺少PUT指示器
    [HttpPut("api/Manifest/VerifyChain/")]
    [ResponseType(typeof (VerifyManifestChainResponse))]
    public IHttpActionResult PutVerifyManifestChain([FromBody] VerifyManifestChainRequest message)
    {
       //.....
    }
  1. 在邮递员中,我必须使用正文作为JSON

Request in Postman

答案 2 :(得分:-1)

如果您正在寻找如何将文件转换为邮递员请求的字节数组:

byte[] bytes = System.IO.File.ReadAllBytes(@"C:\temp\myFile.txt");
string bytesStr = string.Join(",", bytes);

这将产生一个长字符串,如下所示:

"49,48,58,50,52,58,50,54,..."

然后像这样在邮递员请求中使用它:

{
    "FileBytes":[49,48,58,50,52,58,50,54],
    "DeviceId": 12345
}