问题描述
网页中有这样一段代码现实了一张图片<imgborder="0"Align="center"src="image.do"/>
我该如何通过httpclient类获取这张图片呢?我试过下面这个方法但是获取的图片打不开,我怀疑获取的根本就不是图片,而是用来生成图片的程序,求大神指点HttpClientclient=newHttpClient();GetMethodget=newGetMethod("http://xk.fudan.edu.cn/xk/img.do");client.executeMethod(get);FilestoreFile=newFile("d:/sss.bmp");FileOutputStreamoutput=newFileOutputStream(storeFile);//得到网络资源的字节数组,并写入文件output.write(get.getResponseBody());output.close();get.releaseConnection();
解决方案
解决方案二:
可以啊,它是获取那张图片的字节流然后写到已知的一个空图片文件中去。
解决方案三:
packagecom.catchimage;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjavax.servlet.http.HttpServletRequest;importorg.apache.commons.httpclient.*;importorg.apache.commons.httpclient.methods.GetMethod;importorg.apache.commons.httpclient.params.HttpMethodParams;publicclassCatchImage{privatestaticHttpServletRequestreq;publicstaticHttpServletRequestgetReq(){returnreq;}privatestaticStringrootAddress="http://www.google.com.hk/intl/zh-CN/images/logo_cn.png";@SuppressWarnings("deprecation")publicstaticvoidmain(String[]args){HttpClienthttpClient=newHttpClient();httpClient.setConnectionTimeout(5000);httpClient.setTimeout(5000);GetMethodgetMethod=newGetMethod(rootAddress);getMethod.getParams().setContentCharset("UTF-8");getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,newDefaultHttpMethodRetryHandler());try{intstatusCode=httpClient.executeMethod(getMethod);if(statusCode==HttpStatus.SC_OK){FilestoreFile=newFile("d:/google.png");FileOutputStreamoutput=newFileOutputStream(storeFile);output.write(getMethod.getResponseBody());output.close();}}catch(HttpExceptione){e.printStackTrace();}catch(IOExceptione1){e1.printStackTrace();}finally{getMethod.releaseConnection();}}}
需要commons-codec-1.4.jar,commons-httpclient-3.1.jar,servlet-api-2.5.jar,
解决方案四:
我是抓取了google首页的头图,然后写到本地google.png中去,你跑下试试