java 从网络Url中下载文件 && java调用url接口

java 从网络Url中下载文件

/**

* 从网络Url中下载文件

* @param urlStr

* @param fileName

* @param savePath

* @throws IOException

*/

public static void downLoadFromUrl(String urlStr,String fileName,String savePath) throws IOException{

  URL url = new URL(urlStr);

  HttpURLConnection conn = (HttpURLConnection)url.openConnection();

  //设置超时间为3秒

  conn.setConnectTimeout(3*1000);

  //防止屏蔽程序抓取而返回403错误

  conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");

  //得到输入流

  InputStream inputStream = conn.getInputStream();

  //获取自己数组

  byte[] getData = readInputStream(inputStream);

  //文件保存位置

  File saveDir = new File(savePath);

  if(!saveDir.exists()){

    saveDir.mkdir();

  }

  File file = new File(saveDir+File.separator+fileName);

  FileOutputStream fos = new FileOutputStream(file);

  fos.write(getData);

  if(fos!=null){

    fos.close();

  }

  if(inputStream!=null){

    inputStream.close();

  }

  System.out.println("info:"+url+" download success");

}

/**

* 从输入流中获取字节数组

* @param inputStream

* @return

* @throws IOException

*/

public static byte[] readInputStream(InputStream inputStream) throws IOException {

  byte[] buffer = new byte[1024];

  int len = 0;

  ByteArrayOutputStream bos = new ByteArrayOutputStream();

  while((len = inputStream.read(buffer)) != -1) {

    bos.write(buffer, 0, len);

  }

  bos.close();

  return bos.toByteArray();

}

public static void main(String[] args) {

  try{

    downLoadFromUrl("http://101.95.48.97:8005/res/upload/interface/apptutorials/manualstypeico/6f83ce8f-0da5-49b3-bac8-fd5fc67d2725.png",

    "百度.jpg","d:/resource/images/diaodiao/country/");

  }catch (Exception e) {

    // TODO: handle exception

  }

}

很多简单的接口就是直接一个URl的形式,

怎么调用?

HttpClient httpclient=null;

PostMethod post=null;

try{

httpclient = new HttpClient();

post = new PostMethod(SendUrl);

//设置编码方式

post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"gbk");

//添加参数

post.addParameter("LoginName",LoginName);

post.addParameter("Password", Password);

//执行

httpclient.executeMethod(post);

//接口返回信息

String info = new String(post.getResponseBody(),CHARSET);

System.out.println(info);

}catch (Exception e) {

e.printStackTrace();

}finally {

//关闭连接,释放资源

post.releaseConnection();

((SimpleHttpConnectionManager)httpclient.getHttpConnectionManager()).shutdown();

}

到此为止,主要为自己做备忘,同时方便有需要的人。呵呵!