Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在json较大的情况下,反序列化Web Api参数失败_C#_Asp.net Core_Asp.net Core Webapi - Fatal编程技术网

C# 在json较大的情况下,反序列化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

我有一个Asp.Net Core 2.0 Web API服务,它有一个
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);