将Java和代理结合起来的秘诀即在Java运行时激活特定的系统属性。这些属性未被写入正式文件,只是作为Java传说的一部分在Java编程人员中秘传。为了支持代理,Java应用程序不仅需要指定代理本身的信息,而且需要指定用于认证的用户信息。在开始使用网际协议之前,您需要在程序中添加以下几行代码:
System.getProperties().put("proxySet","true");
System.getProperties().put("proxyHost","myProxyMachineName");
System.getProperties().put("proxyPort","85");
上面的第一行通知Java您要通过代理进行连接,第二行指定代理所在的机器,第三行指定代理监听的端口。有些代理在授权用户访问因特网之前,要求用户输入用户名和口令。如果您使用位于防火墙之内的Web浏览器,您就可能碰到过这种情况。以下是执行认证的方法:
URLConnectionconnection=url.openConnection();
Stringpassword="username:password";
StringencodedPassword=base64Encode(password);
connection.setRequestProperty("Proxy-uthorization",encodedPassword);
这段代码的思想是,您必须调整HTTP标头以发出用户信息。这是通过调用setRequestProperty()来实现的。这种方法允许您在发出请求之前处理HTTP标头。HTTP要求用base64对用户名和口令进行编码。幸运的是,有一组公用域API,它们将代您执行编码(请参阅参考资源部分)。
如您所见,在Java应用程序中加入代理支持并不需要做多少工作。有了现在的知识,再做一点研究(您必须查明您的代理是如何处理您感兴趣的协议以及如何进行用户认证的),您就能用其他协议实现代理。
FTP代理
ScottD.Taylor提出这个秘诀来处理FTP协议代理:
defaultProperties.put("ftpProxySet","true");
defaultProperties.put("ftpProxyHost","proxy-host-name");
defaultProperties.put("ftpProxyPort","85");
接下来您便可以通过以下代码使用"ftp"协议访问文件URL:
URLurl=newURL("ftp://ftp.netscape.com/pub/navigator/3.04/windows/readme.txt");
下面是使用socks4代理服务器的方法:
System.getProperty("socksProxySet",true);
System.getProperty("socksProxyHost",proxyHostName);
System.getProperty("socksProxyPort",proxyPort);
UsuallytheproxyPortforSocks4isport1080
分享到:
相关推荐
通过深入学习《设计模式——Java语言中的应用》,开发者能够更好地理解和应用这些模式,从而编写出更加高效、可扩展的Java程序。无论是初级开发者还是经验丰富的程序员,都应该不断探索和实践设计模式,以提升自己的...
在这个特定的项目中,开发者使用Java语言实现了代理服务器的功能,允许用户通过该代理来访问互联网。下面将详细解释相关知识点。 1. **Java Socket**: Java Socket是Java提供的网络编程接口,它提供了低级别的...
Java语言作为OOP的代表,其设计哲学就是“write once, run anywhere”,即编写一次,到处运行,这得益于Java的跨平台特性。 **面向对象编程的基本概念:** 1. **类(Class)**:类是创建对象的模板或蓝图,定义了一...
JSR-80 是 Java 规范请求 (Java Specification Request) 的一部分,旨在定义一个标准的 Java USB API,使 Java 开发者能够更方便地编写与 USB 设备通信的应用程序。该规范的目标是提供一套完整的 API 来处理 USB ...
在Java语言中,设计模式的应用广泛且至关重要,因为它们能帮助开发者遵循良好的编程原则,如开闭原则、单一职责原则、依赖倒置原则等。 首先,我们来看一些基本的设计模式类型: 1. 创建型模式:这类模式主要处理...
"java简单实例程序源代码"这个压缩包包含了一系列章节相关的Java实例源代码,适合初学者和有经验的开发者用来加深对Java语言的理解。以下是这些章节可能涉及的重要知识点的详细解释: 1. **CH11**: 这个章节可能...
Java语言基础.pdf电子书是一本面向初学者的教程,涵盖了Java编程语言的核心概念和基础知识。这本书以详尽易懂的方式,引导读者深入了解Java的世界。在Java这个标签下,我们可以期待学习到以下关键知识点: 1. **...
Java语言程序设计是计算机科学领域中一门至关重要的编程语言,尤其在企业级应用开发中占据主导地位。这个压缩包“Java语言程序设计.rar”显然包含了关于学习和理解Java编程的各种教学资料,旨在帮助初学者或者有经验...
8. **Swing或JavaFX**:这两个是Java的图形用户界面(GUI)库,用于创建桌面应用程序。掌握组件的使用、布局管理器、事件处理等,可以构建出功能丰富的交互式界面。 9. **JDBC**:Java数据库连接(JDBC)是Java访问...
《Java语言程序设计(进阶篇)》是深入学习Java编程的一本经典教材,其中的课后习题旨在帮助读者巩固并提升Java编程技能。第22章的代码着重讲解了Java的一些高级特性,包括但不限于多线程、集合框架、异常处理、IO流...
Java分布式应用是指利用Java编程语言构建的、运行在多台计算机上的应用程序。这些应用程序能够跨网络进行通信和数据交换,实现资源共享和协同工作。Java的平台独立性和丰富的库支持使得它成为开发分布式应用的理想...
Java语言程序设计代码涵盖了一至十章的内容,是学习Java编程的重要参考资料。下面将对每一章的核心知识点进行详细的概述。 **第1章:Java简介** 本章主要介绍Java语言的历史背景,其特性以及与C++等其他编程语言的...
15. **Java EE(企业版)**:对于想要开发服务器端应用的学习者,Java EE提供了Servlet、JSP、EJB、JPA等技术,用于构建分布式应用程序。 通过"Java程序设计100例"这个资源,学习者可以逐步深入每一个知识点,通过...
- **用途**:JNDI允许Java应用程序通过名字来查找和引用远程对象,如数据库连接、消息队列等。 #### JMS (Java Messaging Service) JMS是Java消息服务。 - **定义**:JMS是Java平台提供的消息传递服务,用于在...
Java语言是目前世界上最流行的编程语言之一,以其“一次编写,到处运行”的跨平台特性而闻名。本教程“深入浅出Java语言程序设计”旨在帮助学习者全面理解和掌握Java编程技术,无论你是初学者还是有一定经验的开发者...
【IBM培训教程---Java SE应用程序设计】是一份专注于Java编程的教育资源,虽然缺失了第一章、十二章和十三章,但保留的章节涵盖了Java语言的核心概念和技术。这份教程由IBM提供,意味着它可能包含了IBM对Java SE应用...
Java爬虫是一种使用Java编程语言编写的应用程序,它能够自动地在网络上抓取信息,从一个或多个网页开始,按照特定的规则遍历互联网上的页面。这个"简单的Java爬虫程序"提供了从指定URL开始,按照广度优先策略抓取...
这份名为"面试题汇总:Markdown编写,作为Java知识库提供给Java面试必考小程序使用.zip"的压缩包,显然是为了帮助Java求职者准备面试而设计的。它包含了丰富的Java知识和面试常见问题,以Markdown格式编写,易于阅读...
在Lotus Domino Designer中,Java代理是用Java语言编写的类,这些类继承自com.ibm.domino.xsp.bridge.http.HttpService类。当你创建一个Java代理时,你需要定义一个主方法(main method),这是代理运行的入口点。在...
LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...