开发者社区 问答 正文

java怎么读取指定url的图片

ImageIO.read方法能读取一般的图片,但是下面这个url的图片我读不出来,求助下各位。

展开
收起
蛮大人123 2016-06-04 22:18:19 2957 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    你使用URL.openStream,将内容输入到一个文件里,发现其实这不是一张图片,而是一张HTML页面。内部是一段加密的js.
    解密后,发现这端js的执行如下逻辑:

    var dynamicurl = "http://shixin.court.gov.cn/image.jsp";
    var wzwschallenge = "RANDOMSTR11904";
    var wzwschallengex = "STRRANDOM11904";
    var template = 10;
    var encoderchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    function KTKY2RBD9NHPBCIHV9ZMEQQDARSLVFDU(str) {
    var out, i, len;
    var c1, c2, c3;
    len = str.length;
    i = 0;
    out = "";
    while (i < len) {
    c1 = str.charCodeAt(i++) & 0xff;
    if (i == len) {
    out += encoderchars.charAt(c1 >> 2);
    out += encoderchars.charAt((c1 & 0x3) << 4);
    out += "==";
    break;
    }
    c2 = str.charCodeAt(i++);
    if (i == len) {
    out += encoderchars.charAt(c1 >> 2);
    out += encoderchars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xf0) >> 4));
    out += encoderchars.charAt((c2 & 0xf) << 2);
    out += "=";
    break;
    }
    c3 = str.charCodeAt(i++);
    out += encoderchars.charAt(c1 >> 2);
    out += encoderchars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xf0) >> 4));
    out += encoderchars.charAt(((c2 & 0xf) << 2) | ((c3 & 0xc0) >> 6));
    out += encoderchars.charAt(c3 & 0x3f);
    }
    return out;
    }
    function findDimensions() {
    var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
    var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
    if (w * h <= 120000) {
    return true;
    }
    var x = window.screenX;
    var y = window.screenY;
    if (x + w <= 0 || y + h <= 0 || x >= window.screen.width || y >= window.screen.height) {
    return true;
    }
    return false;
    }
    function QWERTASDFGXYSF() {
    var tmp = wzwschallenge + wzwschallengex;
    var hash = 0;
    var i = 0;
    for (i = 0; i < tmp.length; i++) {
    hash += tmp.charCodeAt(i);
    }
    hash *= 31;
    hash += 111111;
    return "WZWS_CONFIRM_PREFIX_LABEL10" + hash;
    }
    function HXXTTKKLLPPP5() {
    if (findDimensions()) {} else {
    var cookieString = "";
    cookieString = "wzwstemplate=" + KTKY2RBD9NHPBCIHV9ZMEQQDARSLVFDU(template.toString()) + "; path=/";
    document.cookie = cookieString;
    var confirm = QWERTASDFGXYSF();
    cookieString = "wzwschallenge=" + KTKY2RBD9NHPBCIHV9ZMEQQDARSLVFDU(confirm.toString()) + "; path=/";
    document.cookie = cookieString;
    window.location = dynamicurl;
    }
    }
    HXXTTKKLLPPP5();

    //粗略看下,逻辑应该是:
    服务端拿cookie信息,判断是不是一笔正常的请求,如果是,下发图片,如果不是下面之前拉下来的页面,重新初始化cookie.

    2019-07-17 19:27:21
    赞同 展开评论
问答分类:
问答地址: