2 wangyougu010 wangyougu010 于 2016.03.10 20:21 提问

java怎么读取指定url的图片

ImageIO.read方法能读取一般的图片,但是下面这个url的图片我读不出来,求助下各位。谢谢
http://shixin.court.gov.cn/image.jsp

2个回答

caozhy
caozhy   Ds   Rxr 2016.03.11 00:38

用httpclient先下载,再读取

broust
broust   2016.03.11 15:04

你使用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.

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java 从网页指定url获取图片并压缩到本地
运行平台: windows10 JDK版本: 1.8 IDE: eclipse一. 知识储备Java IO流 :   推荐博客: Java IO详解   本文用到的IO方法:DataInputStream; BufferedInputStream; FileOutputStream; BufferedOutputStream;BufferedImage类:   简单地说,Buffered
Java获取url地址图片
package com.listings.web.controller; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileOutputStream; import java.net.HttpURLConnection; import java.net.URL; import
需求(Java语言实现):对存有图片URL的txt文件进行逐行读取,自行下载txt文件中的图片到指定文件夹中
所需大体知识:       。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。    简单粗暴,直接上源码! url.text:  http://img1.gtimg.com/ninja/2/2017/10/ninja150920168497503.jpg http://img1.gtimg.com/ninja/2/2017/11/ninja15096711
通过URL读取图片
通过inputStream读取图片方法 public static byte[] readStream(InputStream inStream) throws Exception { ByteArrayOutputStream outSteam = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int
java 读取URL的资源并写入到指定路径的文件中
利用java 读取URL的资源,并且把读取到的资源写入到指定路径的文件中。
eclipse中getResource(String url)读取照片
getResource()没有获取到值 报错: 解决办法: 把照片文件imgs放入src包中。不然eclipse的项目里用getResource读取的文件夹和imgs文件夹不在一个层面,imgs还在外面一层,所以出现返回值为null的情况。
java通过url读取网络图片
import java.io.BufferedInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; public class downimage { public void sa
java读取远程url图片,得到宽高
import java.awt.image.BufferedImage; import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import jav
根据url读取图片地址
java根据URL获取分辨率 public Dimension getImageDim(String path){ BufferedImage sourceImg = null; Dimension result = null; try { InputStream murl = new URL(path).openS
java读取URL指定的网页内容
URL url = new URL("http://www.gov.cn/guowuyuan/2015-01/30/content_2812665.htm"); //打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。 Reader reader=new InputStreamReader(new BufferedInp