C# 在json较大的情况下,反序列化Web Api参数失败
我有一个Asp.Net Core 2.0 Web API服务,它有一个C# 在json较大的情况下,反序列化Web Api参数失败,c#,asp.net-core,asp.net-core-webapi,C#,Asp.net Core,Asp.net Core Webapi,我有一个Asp.Net Core 2.0 Web API服务,它有一个HTTP Post方法,该方法包含一个byte[]参数,当较大的JSON(~30MB)作为正文内容发送时,该参数无法反序列化,因此具有null值。对于较小的JSON,它能够正确地反序列化到byte[]数组中 基本上,我正在尝试做的是向Asp.NETCore2.0WebAPI端点发送一个byte[],该端点将此负载作为blob存储上传到Azure中。下面是API的代码和调用代码 注意这里有效负载参数具有空值: public cl
HTTP Post
方法,该方法包含一个byte[]
参数,当较大的JSON(~30MB)作为正文内容发送时,该参数无法反序列化,因此具有null
值。对于较小的JSON,它能够正确地反序列化到byte[]
数组中
基本上,我正在尝试做的是向Asp.NETCore2.0WebAPI端点发送一个byte[]
,该端点将此负载作为blob存储上传到Azure中。下面是API的代码和调用代码
注意这里有效负载参数具有空值:
public class MyBlobController : Controller
{
[HttpPost("UploadPayload/{containerName}/{blobName}")]
public async Task<string> UploadPayload([FromBody] byte[] payload,
string containerName, string blobName)
{
//code for uploading blob
}
}
我还介绍了如何更改httppost
请求的最大限制大小。我还启用了该设置,使其能够接受大请求,但反序列化仍然没有成功。您会遇到什么异常?在这里发布。我没有得到任何例外,只是我的字节数组是空的。之前我得到的响应是负载太大的Http状态码413,但在增加请求限制大小后,我没有得到任何异常,只是我的字节数组总是空的
var jsondata = JsonConvert.SerializeObject(payloadData); //payload is large byte array
HttpContent content = new StringContent(jsondata, Encoding.UTF8, "application/json");
//Instantiating the HttpClient.
{
var HttpClientInstance = new HttpClient();
HttpClientInstance.DefaultRequestHeaders.Clear();
HttpClientInstance.DefaultRequestHeaders
.AcceptLanguage.Add(new StringWithQualityHeaderValue("nl-NL"));
HttpClientInstance.DefaultRequestHeaders
.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
}
HttpResponseMessage apiResponse = null;
//Sending a post request to the Blob Api.
apiResponse = await HttpClientInstance
.PostAsync("http://localhost:8999/api/MyBlob/UploadPayload/mycontainer/myblob", content);