`
liss
  • 浏览: 844347 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java跨越代理服务器连接URL

阅读更多

1. 读取网络资源图片流public static void main(String[] args) {
  // TODO 自动生成方法存根

   //跨过代理服务器连接网络
   try {
    java.net.InetAddress addr = InetAddress
      .getByName("192.168.0.254");
    InetSocketAddress sa = new InetSocketAddress(addr, 8080);
    // sa.
    java.net.Proxy proxy = new java.net.Proxy(Proxy.Type.HTTP, sa);
    Authenticator.setDefault(new Authenticator() {
     protected PasswordAuthentication getPasswordAuthentication() {
      return new PasswordAuthentication("csk",
      new String("csk").toCharArray());
     }
    });
    URL url = new URL(
      "http://61.152.145.58/EM_Quote2006PictureRWS/Default.aspx?StockCode=600900&Type=10");
    URLConnection conn = url.openConnection(proxy);
    java.io.InputStream imageIn = conn.getInputStream();
    java.io.File file = new java.io.File("c:\\aa.png");
    java.io.FileOutputStream fos = new java.io.FileOutputStream(
      file);
    byte[] value = new byte[1024];
    int aa=0;
    while ((aa=imageIn.read(value)) > 0) {
     fos.write(value,0,aa);
    }
    fos.close();
    imageIn.close();
   } catch (Exception e) {
    e.printStackTrace();
   }   
  
}
2. 读取网络图片,并对图片进行修改,添加文字处理:
/**
*
*/
package com;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.Authenticator;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.MalformedURLException;
import java.net.PasswordAuthentication;
import java.net.Proxy;
import java.net.SocketAddress;
import java.net.URL;
import java.net.URLConnection;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageDecoder;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
/**
* @author shaokun305
*
*/
public class Test {
/**
  * @param args
  */
public static void main(String[] args) {
  // try {
  // JabberServer.createServer();
  // System.out.println("=========================================");
  // JabberClient.createClient();
  // } catch (IOException e) {
  // e.printStackTrace();
  // }
  for (int i = 226; i < 228; i++) {
   // int i=3;
   String[] jpgPath = getImgPahthStr(i + 1);
   // String[]
   // jpgPath={"http://cache.orion.sina.com.cn/supportsauto_d/200610bjcarmodel/e0/2c/061119_"+(i+1)+"_1.JPG",
   // "http://cache.orion.sina.com.cn/supportsauto_d/200610bjcarmodel/e0/2c/061119_"+(i+1)+"_2.JPG",
   // "http://cache.orion.sina.com.cn/supportsauto_d/200610bjcarmodel/e0/2c/061119_"+(i+1)+"_3.JPG",
   // "http://cache.orion.sina.com.cn/supportsauto_d/200610bjcarmodel/e0/2c/061119_"+(i+1)+"_4.JPG"
   // };//
   // http://cache.orion.sina.com.cn/supportsauto_d/200610bjcarmodel/2a/74/061119_204_1.JPG
   getImgOut(jpgPath, i + 1);
  }
  //  
}
private static void getImgOut(String[] urlArray, int number) {
  try {
   java.net.InetAddress addr = InetAddress.getByName("192.168.0.254");
   InetSocketAddress sa = new InetSocketAddress(addr, 8080);
   // sa.
   java.net.Proxy proxy = new java.net.Proxy(Proxy.Type.HTTP, sa);
   Authenticator.setDefault(new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
     return new PasswordAuthentication("csk",
     new String("csk").toCharArray());
    }
   });
   if (urlArray != null)
    for (int i = 0; i < urlArray.length; i++) {
     String strUrl = urlArray;
     // URL url=new
     // URL("http://cache.orion.sina.com.cn/supportsauto_d/200610bjcarmodel/af/87/061118_4_1.JPG");
     URL url = new URL(strUrl);
     URLConnection conn = url.openConnection(proxy);
     java.io.InputStream imageIn = conn.getInputStream();
     JPEGImageDecoder decoder = JPEGCodec
       .createJPEGDecoder(imageIn);
     BufferedImage image = decoder.decodeAsBufferedImage();
     Graphics g = image.getGraphics();
     initFont(g); // 初始化字体
     g.drawString(number + "号", 20, 20);
     // 输出数据流
     java.io.File file = new File("d:\\images\\" + number + "_"
       + (i + 1) + ".JPG");
     java.io.FileOutputStream output = new FileOutputStream(file);
     JPEGImageEncoder encoder = JPEGCodec
       .createJPEGEncoder(output);
     encoder.encode(image);
     imageIn.close();
    }
  } catch (MalformedURLException e) {
   e.printStackTrace();
  } catch (IOException e) {
   // TODO 自动生成 catch 块
   e.printStackTrace();
  }
}
private static void initFont(Graphics g) {
  String f; // 字体颜色
  int fontSize = 16; // 字体大小
  String f; // 字体风格(斜体,粗体等)
  String f; // 字体名称
  g.setColor(Color.RED);
  Font mFont = new Font(fontName, Font.PLAIN, fontSize);// 默认字体
  if (fontStyle.equalsIgnoreCase("italic"))
   mFont = new Font(fontName, Font.ITALIC, fontSize);
  if (fontStyle.equalsIgnoreCase("bold"))
   mFont = new Font(fontName, Font.BOLD, fontSize);
  if (fontStyle.equalsIgnoreCase("plain"))
   mFont = new Font(fontName, Font.PLAIN, fontSize);
  // System.out.println("字体大小:=" + mFont.getSize());
  g.setFont(mFont);
}
/**
  *
  */
private static String[] getImgPahthStr(int number) {
  try {
   java.net.InetAddress addr = InetAddress.getByName("192.168.0.254");
   InetSocketAddress sa = new InetSocketAddress(addr, 8080);
   // sa.
   java.net.Proxy proxy = new java.net.Proxy(Proxy.Type.HTTP, sa);
   Authenticator.setDefault(new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
     return new PasswordAuthentication("csk",
     new String("csk").toCharArray());
    }
   });
   URL url = new URL(
     "http://supports.auto.sina.com.cn/200610bjcarmodel/show.php?id="
       + number);
   URLConnection conn = url.openConnection(proxy);
   java.io.InputStream in = conn.getInputStream();
   java.io.BufferedReader bin = new BufferedReader(
     new java.io.InputStreamReader(in));
   if (number <= 202)
    return getJpgArrayOne(bin);
   else
    return getJpgArray(number, bin);
  } catch (MalformedURLException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  return null;
}
/**
  * @param bin
  * @return
  * @throws IOException
  */
private static String[] getJpgArrayOne(java.io.BufferedReader bin)
   throws IOException {
  boolean flag = false;
  StringBuffer jpgStr = new StringBuffer();
  while (true) {
   String str = bin.readLine();
   if (str.indexOf("var imgs = new Array") != -1)
    flag = true;
   if (str.indexOf("var imgi = 0;") != -1)
    break;
   if (flag)
    jpgStr.append(str);
   // str="";
   // Get the entry name; it should be the same as specified on URL
   // Get the jar entry
  }
  bin.close();
  String pathStr = "";
  pathStr = jpgStr.substring(jpgStr.indexOf("(\"") + 2);
  pathStr = pathStr.substring(0, pathStr.indexOf("\")"));
  System.out.println(pathStr);
  String[] jpgStrArr = pathStr.split("\",\"");
  // System.out.println(jpgStrArr[0]);
  // System.out.println(jpgStrArr[1]);
  // System.out.println(jpgStrArr[2]);
  // System.out.println(jpgStrArr[3]);
  return jpgStrArr;
}
/**
  * @param number
  * @param bin
  * @param flag
  * @return
  * @throws IOException
  */
private static String[] getJpgArray(int number, java.io.BufferedReader bin)
   throws IOException {
  String name1=".JPG";
  String name2=".jpg";
  String name=name1;
  boolean flag = false;
  String[] jpgStrArr = new String[4];
  while (true) {
   String str = bin.readLine();
   if (str == null)
    break;
   int index = 1;
   index = str
     .indexOf("http://cache.orion.sina.com.cn/supportsauto_d/200610bjcarmodel");
   if (index != -1)
    flag = true;
   if (flag) {
    int endIndex = str.indexOf(name) + 4;
    if(endIndex==3){
     name=name2;
     endIndex = str.indexOf(name) + 4;
    }
    jpgStrArr[0] = str.substring(index, endIndex);
    break;
   }
  }
  System.out.println(jpgStrArr[0]);
  jpgStrArr[1] = jpgStrArr[0].replaceAll(number + "_1"+name, number
    + "_2"+name);
  jpgStrArr[2] = jpgStrArr[0].replaceAll(number + "_1"+name, number
    + "_3"+name);
  jpgStrArr[3] = jpgStrArr[0].replaceAll(number + "_1"+name, number
    + "_4"+name);
  return jpgStrArr;
}
}

分享到:
评论

相关推荐

    Java连接opc所需的jar包,以及Java实现opc server客户端的源码.zip

    Java通过使用特定的库,如Jeasyopc,可以跨越平台限制实现OPC连接。 Jeasyopc是Java OPC客户端库,提供了一个简单易用的API,用于与OPC服务器交互。版本2.3.2可能包含以下功能: 1. **基本功能**:创建OPC连接,...

    java_database.rar_JAVA数据库_database java_数据库

    Java通过JDBC支持TCP/IP协议,使得跨越网络的数据库操作成为可能。远程数据库访问可能涉及到网络延迟、安全性和稳定性等问题,因此通常需要进行适当的优化和错误处理。 6. **事务管理**: 在数据库操作中,事务...

    JAVA程序设计:第15章 网络编程.ppt

    Java的`java.net.URL`类是用来表示和操作URL的主要工具。这个类有多个构造方法,允许我们根据不同的需求创建URL对象。例如: 1. `public URL(String spec)` - 通过一个包含完整URL信息的字符串来创建URL对象。 2. `...

    JAVA网络编程学习资料

    在深入学习这些概念后,你将能够开发出能够跨越网络进行通信的应用程序,无论是简单的文件传输,还是复杂的分布式系统,都可以通过Java网络编程技术实现。记住,理论学习与实践操作相结合是掌握任何技术的关键,所以...

    编写简单的RMI程序 多线程web 服务器

    RMI是Java平台的标准部分,它使得开发者能够创建分布式系统,这些系统能够跨越网络进行交互,仿佛它们都在同一台计算机上运行。RMI在企业级应用、数据库连接和云服务中都有广泛应用。 首先,我们来深入了解一下RMI...

    Java中的网络编程学习总结

    Java中使用`java.net.URL`类来表示URL,并提供了一系列的方法来操作URL。 - **创建URL对象**: ```java URL url = new URL("http://www.example.com"); ``` - **获取URL的属性**: - `getProtocol()`:获取...

    广州腾科java基础

    2. 可移植性:Java程序在编译后生成字节码,由JVM解释执行,因此能跨越不同操作系统平台,具有高度的可移植性。 3. 简洁易学:Java简化了C++的复杂性,例如没有指针,这使得学习曲线更平缓。 4. 分布式计算:Java...

    java基础 网络编程

    在Java中,`java.net.Socket`类用于客户端,`java.net.ServerSocket`类用于服务器端,它们提供了一种可靠的、面向连接的数据传输方式。 另外,Java还支持远程方法调用(RMI,Remote Method Invocation),这是一种...

    java网络编程

    在Java中,`java.net.Socket`类和`java.net.ServerSocket`类用于实现客户端和服务器之间的连接。客户端通过创建Socket对象与服务器建立连接,而服务器则通过创建ServerSocket监听特定端口,等待客户端的连接请求。 ...

    ftp.zip_ftp_java ftp_java 文件传输_文件传输

    1. **FTP连接**:首先,你需要创建一个`Socket`对象并连接到FTP服务器,通常使用`ftp://hostname:port`格式的URL。连接成功后,通过`DataInputStream`和`DataOutputStream`与服务器进行通信。 2. **FTP命令**:FTP...

    java远程方法调用

    这一特性使得Java应用能够跨越网络边界,构建出分布式的系统架构。 RMI基于Java的远程接口和实现类,以及远程对象的注册和查找机制。在RMI中,远程接口定义了客户端可调用的方法签名,而实现类则提供了这些方法的...

    java 课本课件 网络编程

    本章节将深入讲解Java中的网络通信基础,主要包括网络传输协议、域名和IP地址、服务类型和端口号,以及URL的结构。同时,我们将重点讨论InetAddress类、Socket和ServerSocket在Java中的应用。 首先,网络传输协议是...

    openlayers geoserver代理的配置文件

    1. `web.xml`: 这是Java Web应用的标准部署描述符,可能包含了关于代理配置的信息,比如在Tomcat或Jetty等Servlet容器中设置代理的配置项。 2. `server.xml`: 这通常是应用服务器(如Tomcat、Jetty或Apache ...

    java web services教程

    3. **WSDL (Web Services Description Language)**:WSDL 是一个 XML 文件,它定义了 Web Service 的接口,包括服务的位置(URL)、可用的操作、输入和输出参数等。WSDL 通过 HTTP 发布,供客户端程序发现和理解服务...

    使用 CORBA 和 Java IDL.doc

    - 使用ORB获取对象引用,通常通过名字服务器或硬编码的URL。 - 示例获取引用:`org.omg.CORBA.Object obj = orb.resolve_initial_references("NameService");` **调用远程对象方法:** - 使用对象引用调用远程对象...

    ckfinder_java_2.3.zip_ckfinder dfs manage

    1. `config.java` - 这是CKFinder的配置文件,包含服务器连接设置、权限配置、默认语言等。 2. `web-inf` - 这个目录包含了Servlet配置和可能的库文件,如JARs。 3. `language` - 包含了不同语言的界面文本文件,...

    精通Java网络编程光盘资料

    此外,Java的URL和URLConnection类使得访问网络资源变得简单。描述中的"聊天程序客户端的实现"就是基于这些API构建的,它展示了如何建立可靠的网络通信机制。 2. **RMI(Remote Method Invocation)**:RMI是Java...

    通过ORACLE通用连接访问SQLServer数据库的方法

    通过这种方式,Oracle的JDBC驱动使得我们可以利用Java的平台无关性,跨越不同的数据库系统,实现数据的迁移、同步或其他复杂操作。了解并掌握这种技术对于数据库管理员和开发人员来说是十分必要的,因为它们可以提高...

Global site tag (gtag.js) - Google Analytics