首页 > 解决方案 > 来自 webapi 的响应,字节数组为 null

问题描述

我有如下回应

public class Getfile_response
{
  public string file_name { get; set; }
  public byte[] file { get; set; }
}

以及对 web api 的调用如下

var request = new RestRequest("API/Eprocess/GetMEREResponse", Method.POST);
var response = ExecuteRequest<Getfile_response>(request, requestData);

并且此调用到达 webapi 并分配如下值

resp.file_name = "test.xml";

byte[] fileBytes = System.IO.File.ReadAllBytes(@"C:\XMLFiles\response_files\test.xml");
resp.file = fileBytes;

return resp;

它正在分配值,但是当它到达响应时,它显示为空。如果我注释字节数组,那么响应将显示为 file_name。什么不见​​了

标签: c#arraysasp.net-web-apiresponserestsharp

解决方案


响应被很好地检索RestClientIRestResponse<T>.Data返回null,只是因为RestSharp序列化程序无法处理响应格式。你可以Json.NET自己使用和反序列化响应内容来避免这个问题

var response = ExecuteRequest(request, requestData);
var result = JsonConvert.DeserializeObject<Getfile_response>(response.Content)

推荐阅读