循环遍历HttpURLConnection的有效方法

时间:2020-09-03 12:51:33

标签: android http-post httpurlconnection

我有一台托管WiFi接入点的设备和一台Web服务器,可以接受新的空中下载(OTA)固件。

从浏览器访问网页时,使用带有文件上传字段的HTML表单,我可以在大约2.5分钟内发布新固件。设备需要一系列HTTP POST,查询字符串中的偏移量会更改每个请求,并在POST正文中更改二进制固件数据。 POST是使用XMLHttpRequest在Javascript中完成的,并在发送下一个固件块(块大小为1024字节)之前等待200个响应。

尝试使用HttpURLConnection在Android应用中重新创建上传过程,相同的固件文件需要大约32分钟才能上传。每个具有1024字节固件数据的POST都需要3秒钟以上才能完成。这是我在AsynTask中用于上传数据的代码:

@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class RequestFilter implements Filter {

    public RequestFilter() {}

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletRequest httpRequest = (HttpServletRequest) request;

        Enumeration<String> headerNames = httpRequest.getHeaderNames(); //print this to see all headers

        httpRequest.getHeader("host"); //returns the host header
        chain.doFilter(req, res);
    }

    @Override
    public void init(FilterConfig filterConfig) {}

    @Override
    public void destroy() {}
}

我滥用HttpURLConnection导致其移动如此缓慢,还是有更好的方法来发布一系列HTTP请求?

0 个答案:

没有答案