处理Web Api中的Base64字符串数组

时间:2017-03-03 12:55:20

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

我试图维护一个试图将图像(是多个)从移动设备发布到dot-net web api的项目。

api和移动设备之间的默认内容为application/json

public async Task<HttpResponseMessage> PostExpertiseForm(List<string> images){}

这是发布的实际方法,在这种方法中,他们尝试将base64字符串(images)写入文件。

但问题是当我试图调用这个api时,web api第一次将images与我的base64字符串绑定,但所有下一个请求(与第一个请求相同的请求)都绑定为null。 / p>

我做了一些谷歌搜索,并试图这是一个请求大小的问题,我把这些行添加到Web.config

<httpRuntime targetFramework="4.6" maxRequestLength="2147483647" />

<requestLimits maxAllowedContentLength="2147483648" />

<jsonSerialization maxJsonLength="2147483644">

没有用。

这里真正的问题是什么?为什么我的第一个请求有效

感谢您的建议!

1 个答案:

答案 0 :(得分:0)

问题不在于json的大小。有一种记录每个响应和请求的机制,在日志请求方法中,我看到了这一行var request=await Request.ReadAsStringAsync();

在web api中搜索无参数的帖子方法后,我发现了问题why-is-the-body-of-web-api-request-read-once

我意识到我试图两次读取请求体并导致死锁。

我改变了日志记录的逻辑。问题已经消失了。