我实现了一个控制器如下:
@RequestMapping(value = "/export", method = RequestMethod.POST)
public @ResponseBody ResponseEntity<Object> Export(HttpServletRequest req, HttpServletResponse response, String type,String text) {
........
}
当从客户端发布长度小(约20k)的文本(表单参数)时,控制器工作正常并且可以获得表单参数(数据和类型)。
但是当来自客户端的文本(表单参数)非常长(超过200k)时,'type'和'text'在服务端是null。
谁知道如何处理它。
答案 0 :(得分:1)
表单params
可以从请求中读取为req.getParameter("type")
。
由于您已在方法签名
req
和resp
,因此请按以下方式更改方法
public @ResponseBody ResponseEntity<Object> Export(HttpServletRequest req, HttpServletResponse response){
String type = req.getParameter("type");
String text = req.getParameter("text");
}
答案 1 :(得分:1)
您可以使用Spring MVC注释,如下所示。
/// <summary>
/// Wrapper to allow testing with StreamReader
/// </summary>
public class StreamReaderWrapper : IStreamReader
{
private StreamReader _streamReader;
public void Dispose()
{
if (_streamReader != null)
{
_streamReader.Dispose();
_streamReader = null;
}
}
public IStreamReader GetNew(Stream stream)
{
Dispose();
_streamReader = new StreamReader(stream);
return this;
}
public string ReadToEnd()
{
return _streamReader.ReadToEnd();
}
public Task<string> ReadToEndAsync()
{
return _streamReader.ReadToEndAsync();
}
}