我试图维护一个试图将图像(是多个)从移动设备发布到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">
没有用。
这里真正的问题是什么?为什么我的第一个请求有效
感谢您的建议!
答案 0 :(得分:0)
问题不在于json的大小。有一种记录每个响应和请求的机制,在日志请求方法中,我看到了这一行var request=await Request.ReadAsStringAsync();
在web api中搜索无参数的帖子方法后,我发现了问题why-is-the-body-of-web-api-request-read-once
我意识到我试图两次读取请求体并导致死锁。
我改变了日志记录的逻辑。问题已经消失了。