如何从移动设备向服务器

时间:2018-06-14 14:32:34

标签: java rest base64

在我的项目中,我必须将图像作为base64字符串从移动设备发送到服务器。

问题是,如果图像大小很大,我从过滤器类中得到以下错误

java.lang.StackOverflowError: null
    at java.util.regex.Pattern$GroupTail.match(Pattern.java:4719)
    at java.util.regex.Pattern$BranchConn.match(Pattern.java:4570)
    at java.util.regex.Pattern$CharProperty.match(Pattern.java:3779)
    at java.util.regex.Pattern$Branch.match(Pattern.java:4606)
    at java.util.regex.Pattern$GroupHead.match(Pattern.java:4660)
    at java.util.regex.Pattern$Loop.match(Pattern.java:4787)

wrapped by: org.glassfish.jersey.server.ContainerException: java.lang.StackOverflowError
    at com.LogUIDFilter.doFilter(LogUIDFilter.java:99) [22 skipped]

以下是我的过滤器类

public class LogUIDFilter implements Filter {

        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            // pass the request along the filter chain
            chain.doFilter(request, response);
        }


}

如何将巨大的基础64文本从移动设备发送到服务器。是否有任何其他投注方式将图像从移动设备发送到服务器。

任何帮助将不胜感激!!!!

1 个答案:

答案 0 :(得分:1)

问题与base64图像的大小无关。

问题是您在代码中使用正则表达式,我可以想象您正在测试base64字符串的内容。 该错误与该正则表达式的解析器完成的长递归有关。

使用递归调用分析包含某种路径的正则表达式(例如重复的备用路径,如(A|B)*)。 如果解析的字符串非常长,则会生成StackOverflowError。