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

java实现使用代理服务器创建URL连接

阅读更多

package cn.arthurs.web;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Authenticator;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.PasswordAuthentication;
import java.net.URL;
import java.util.Properties;
import org.apache.log4j.Logger;


public class WebUnit {
 private static final Logger log = Logger.getLogger( WebUnit.class );
 
 /**
  * 返回一个网站的源代码,需要传入一个网站的网址
  * @param webUrl
  * @return
  */
 public static String getWebContent(String webUrl){
  URL url;
  HttpURLConnection conn;
  InputStream stream;
  StringBuffer  text  =  new  StringBuffer();
  String temp="";
  try {
   url = new URL(webUrl);
   
   //如果需要代理服务器
   if(false){
      Properties prop = System.getProperties();       
      // 设置http访问要使用的代理服务器的地址          
      prop.setProperty("http.proxyHost", "bmcdc.bmsa.com");       
      // 设置http访问要使用的代理服务器的端口          
      prop.setProperty("http.proxyPort", "1865");       
      // 设置不需要通过代理服务器访问的主机,可以使用*通配符,多个地址用|分隔          
      prop.setProperty("http.nonProxyHosts", "localhost|10.4.*.*");       
      // 设置安全访问使用的代理服务器地址与端口        // 它没有https.nonProxyHosts属性,它按照http.nonProxyHosts 中设置的规则访问          
//      prop.setProperty("https.proxyHost", "bmccisa-dc02.bmccisa.com");          
//      prop.setProperty("https.proxyPort", "443");       
      // 使用ftp代理服务器的主机、端口以及不需要使用ftp代理服务器的主机          
//      prop.setProperty("ftp.proxyHost", "192.168.0.254");          
//      prop.setProperty("ftp.proxyPort", "2121");          
//      prop.setProperty("ftp.nonProxyHosts", "localhost|192.168.0.*");        // socks代理服务器的地址与端口          
//      prop.setProperty("socksProxyHost", "192.168.0.254");          
//      prop.setProperty("socksProxyPort", "8000");       
      // 设置登陆到代理服务器的用户名和密码          
      Authenticator.setDefault(new MyAuthenticator("ebgqy@bca.com", "f3mj"));
   }
   conn = (HttpURLConnection) url.openConnection();
   conn.connect();
   stream = conn.getInputStream();
   BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
   while((temp = reader.readLine()) != null){
    text.append(temp+"\n");
   }
  } catch (MalformedURLException e) {
   log.error("输入"+webUrl+"有误!!!");
  } catch (IOException e) {
   log.error(e);
  }
  return text.toString();
 }
 
 
 public static void main(String[] args){
//   System.out.println(WebUnit.getWebContent("http://www.baidu.com"));
  }
 
 static class MyAuthenticator extends Authenticator {       
  private String user = "";       
  private String password = "";       
  public MyAuthenticator(String user, String password) {           
   this.user = user;           
   this.password = password;          
  }       
  protected PasswordAuthentication getPasswordAuthentication() {          
   return new PasswordAuthentication(user, password.toCharArray());          
  }      
 }
}

分享到:
评论

相关推荐

    java实现的代理服务器

    在这个实例中,我们将深入探讨代理服务器的概念、工作原理以及如何使用Java来实现它。 首先,我们需要理解代理服务器的基本概念。代理服务器(Proxy Server)是一种特殊的网络服务器,它接收来自客户端的请求,并...

    使用JAVA中的动态代理实现数据库连接池

    在本文中,我们将探讨如何使用Java的动态代理来实现数据库连接池,从而解决传统连接池设计中的耦合度问题和资源管理问题。 首先,数据库连接池是应用程序管理数据库连接的一种高效方式。它通过复用已建立的数据库...

    java LAN使用代理服务器

    在Java编程环境中,当需要通过局域网(LAN)进行网络通信时,有时会遇到需要使用代理服务器的情况。代理服务器可以提供多种功能,包括提高访问速度、缓存、过滤网络内容以及匿名上网等。本文将深入探讨如何在Java中...

    代理服务器实现-java(源码)

    总的来说,这个Java代理服务器示例提供了一个基础的代理服务实现,有助于理解网络编程、HTTP协议以及Java中的多线程和网络通信机制。通过扩展这个基础代码,可以实现更复杂的代理功能,如缓存、访问控制、加密等。

    Java写http代理服务器

    本主题将深入探讨如何使用Java语言来编写这样的代理服务器。以下是对这个主题的详细解析: 首先,理解HTTP代理服务器的基本原理是必要的。HTTP代理服务器作为客户端与目标服务器之间的中介,它接收客户端的HTTP请求...

    tt.rar_ java_Java 代理服务器_java 线程_代理服务器_服务器

    Java代理服务器是一种网络通信工具,它允许客户端通过它与目标服务器进行通信,以此来隐藏原始客户端的IP地址或者实现特定的网络访问策略。在Java中实现代理服务器涉及到多个关键概念和技术,包括网络编程、多线程...

    Java代理服务器程序

    Java代理服务器程序是一种用于转发网络请求的应用,它在客户端与目标服务器之间起到中介的作用。这样的设计使得用户可以通过代理服务器访问互联网,从而实现多种功能,如匿名浏览、负载均衡、缓存优化、网络监控等。...

    Java代理服务器的实现

    ### Java代理服务器的实现 #### 概述 Java代理服务器是一种网络中间件,它作为客户端与目标服务器之间的中介,能够帮助转发HTTP请求和响应。在实际应用中,代理服务器不仅能够提升安全性,还能够用于缓存、日志...

    Java实现HTTP连接与浏览,Java源码下载

    本教程将深入探讨如何使用Java实现这一功能,并提供相关的源码下载,帮助开发者更好地理解和实践。 首先,我们要知道在Java中,我们通常使用`java.net.URL`类来表示一个网络资源的统一资源定位符,`java.net....

    使用Proxy创建代理服务器

    本教程将详细讲解如何使用Java编程语言来创建一个代理服务器,以实现对网络请求的转发处理。 首先,我们需要理解代理服务器的基本原理。代理服务器是一个位于客户端和目标服务器之间的中间服务器,它接收客户端的...

    JAVA代理服务器

    以上代码创建了一个简单的Java代理服务器,它监听8080端口,接收到客户端请求后,将请求转发到指定的目标服务器,并将响应回传给客户端。请注意,这只是一个基础示例,实际应用中还需要处理HTTP协议的解析,如请求头...

    Java中使用IE Proxy代理的方法

    本文将详细介绍如何在Java中使用IE Proxy代理来实现这一功能。 首先,我们需要理解Java中的网络访问机制。Java使用`java.net`包中的`Socket`和`HttpURLConnection`等类来处理网络通信。当程序运行时,它会使用系统...

    JAVA HTTP反向代理实现过程详解

    反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个...

    基于Java的Web代理服务器 RabbIT.zip

    RabbIT是一个用Java语言实现的Web代理服务器,它允许用户通过配置来控制网络流量,提高网络访问效率,同时为开发和测试提供了便利。 【Java技术】 Java是一种广泛使用的面向对象的编程语言,以其“一次编写,到处...

    通过url网址下载图片,可以选择有代理下载,也可以选择无代理下载

    然后,我们在打开URL连接时使用这个代理。 标签“java url 代理 下载图片”概括了本文讨论的主题。在实际应用中,你可能需要处理各种异常情况,例如网络连接问题、权限问题等。此外,你还可以考虑优化下载过程,...

    Java编写的HTTP代理

    代理服务器会创建一个监听套接字,等待客户端的连接请求。一旦客户端连接,服务器端就会创建一个新的Socket连接,用于与目标服务器通信。 2. **HTTP请求解析**:代理服务器需要解析客户端发送的HTTP请求,这包括...

    2022年用Java实现HTTP文件队列下载Java教程.docx

    1. **发起请求**:客户端通过`java.net.URL`类创建一个URL对象,然后使用`openConnection()`方法建立与服务器的连接。 2. **建立连接**:通过`HttpURLConnection`对象调用`connect()`方法,连接指定的网络资源,获取...

    用Java实现HTTP文件队列下载.pdf

    - **使用Java访问URL**:Java提供了`java.net.URL`类来创建URL对象,`java.net.HttpURLConnection`类用于建立HTTP连接。例如: ```java URL url = new URL(destUrl); HttpURLConnection httpUrl = ...

    java HTTP代理源码

    - `ProxyTest`可能是一个测试类或测试用例,用于验证代理服务器的功能是否正常,可能包含创建HTTP请求并发送到代理服务器的示例代码。 4. **源码学习要点** - **代理服务器的初始化**:设置监听端口,启动服务器...

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

Global site tag (gtag.js) - Google Analytics