如何将带有字节数组的 json 发送到 web api / postman
Posted
技术标签:
【中文标题】如何将带有字节数组的 json 发送到 web api / postman【英文标题】:How to send json with byte array to web api / postman 【发布时间】:2017-01-21 13:36:28 【问题描述】:我希望能够同时发送给两者 1. Web API 2. Postman 到 Web Api
我可以使用 Postman 对我的 Web Api 进行简单的 GET 请求,但我不明白如何发送字节数组。
对于 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;
我应该使用 Postman 通过原始数据发送 JSON 吗?
"CalculatedMeasurement": ?????,
"DeviceId": "00022B9A000000010001"
我知道网页何时调用 Web Api,我确实在 Inspector 中看到了这一点
邮递员 sn-p
如何通过 Postman 发送数据,以及如何发送到 web api http://localhost:42822/api/Manifest/VerifyChain/
【问题讨论】:
也许 "CalculatedMeasurement" : [12,12,34,...] 考虑每个项目不应大于 255 你解决过这个问题吗? 【参考方案1】:认为你的 Webapi 方法需要 [HttpPut]
[HttpPut]
[Route("api/Manifest/VerifyChain/")]
[ResponseType(typeof (VerifyManifestChainResponse))]
public IHttpActionResult PutVerifyManifestChain([FromBody] VerifyManifestChainRequest message)
//.....
在邮递员中,您的消息正文将是一个数组
"CalculatedMeasurement":[71,107,98],
"DeviceId": "afdghufsdjdf"
【讨论】:
没有要转换为base 64的字节。【参考方案2】:您必须将文件转换为 base64 并将其作为字符串发送。
-
您的 WebAPI 方法缺少 PUT 指示符
[HttpPut("api/Manifest/VerifyChain/")]
[ResponseType(typeof (VerifyManifestChainResponse))]
public IHttpActionResult PutVerifyManifestChain([FromBody] VerifyManifestChainRequest message)
//.....
-
在 Postman 中,我必须使用 JSON 格式的正文
Request in Postman
【讨论】:
这是正确的答案:转换 base 64 中的字节并在邮递员请求中使用生成的字符串。例如,在 java 中,将字节转换为 base 64 就像 Base64.encode(myBytes) 一样简单。【参考方案3】:如果您正在寻找如何将文件转换为用于邮递员请求的字节数组:
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
【讨论】:
以上是关于如何将带有字节数组的 json 发送到 web api / postman的主要内容,如果未能解决你的问题,请参考以下文章
如何将字节数组中的图像发送到从android到具有Flask的python的url [重复]