网上也有一些文章但是大多数涉及带有授权验证的proxy都有问题,
主要问题就是出在对 Authenticator.setDefault的使用,以及base64编码的问题上
代码是最没有二义性的文档,实现原理不再解释,请看代码去体会。
如果转载请注明代码出处。
Java sample codes that access outer internet through proxy which require username and password .Use inner instead of extends is the most different
chimae@cnjsp.org
package org.chimae.net;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.PasswordAuthentication;import java.net.URL;/** * @author chimae@cnjsp.org */public class ProxyConnTest { public static void initProxy(String host, int port, final String username, final String password) { Authenticator.setDefault(new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, new String(password).toCharArray()); } }); System.setProperty("http.proxyType", "4"); System.setProperty("http.proxyPort", Integer.toString(port)); System.setProperty("http.proxyHost", host); System.setProperty("http.proxySet", "true"); } public static void main(String[] args) throws IOException { String url = "http://java.sun.com/"; String proxy = "yourProxy"; int port =8080; String username ="username"; String password ="password"; String curLine = ""; String content = ""; URL server = new URL(url); initProxy(proxy,port,username,password); HttpURLConnection connection = (HttpURLConnection)server.openConnection(); connection.connect(); InputStream is = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); while ((curLine = reader.readLine()) != null) { content += curLine; } System.out.println("content= " + content); is.close(); }}
分享到:
相关推荐
本主题将深入探讨如何使用C#来调用带有身份验证的Java Web服务。Web服务作为一种基于标准的通信方式,允许不同语言和平台之间的应用程序共享数据和功能。在这个案例中,我们将重点关注C#与Java之间的交互,特别是...
Java 实现免费代理IP的获取方式 并动态实时校验是否有效,java文件项目内含有Jsoup的Jar包(Jsoup是加工过的,含请求),有2个主入口程序: 其一:用于请求代理IP,并立即校验是否是一个有效的代理IP,如果有效,...
基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于...
HTTP代理服务器java 简单网站过滤
Google身份验证器是实现这种动态密码验证的一种工具,尤其在Java开发中被广泛应用。本篇将详细介绍如何使用Google身份验证器来实现动态密码验证的Java Demo。 1. **Google身份验证器简介** Google身份验证器是一个...
主要讲解了 solr客户端如何调用带账号密码的solr服务器调用,实现添加索引和查询索引,以及分组查询
Java 解压带密码的 RAR文件。 Java解压RAR文件,压缩包内包含源码、Jar包、依赖包和示例程序,也可以从http://code.google.com/p/java-unrar/downloads/list这里下载支持密码的unrar项目(包括源码和jar包),其依赖...
标题中的“基于Java开发的一款基于Netty的内网穿透工具”揭示了我们正在讨论的是一个使用Java编程语言,并且依赖于Netty框架的软件应用。Netty是一个高性能、异步事件驱动的网络应用程序框架,常用于开发服务器和...
Java 使用 LDAP 修改 AD 域用户密码 本文将详细介绍如何使用 Java 语言通过 LDAP 协议修改 Windows Active Directory 域用户的密码。同时,本文也将对相关概念进行解释,以便读者更好地理解整个过程。 LDAP 概念 ...
【标题】"java写的一个带密码的小型记事本"是一个使用Java编程语言开发的简易密码保护记事本应用程序。这个程序为用户提供了安全存储文本笔记的功能,通过密码保护确保了笔记内容的私密性。对于Java初学者来说,这是...
在本文中,我们将深入探讨如何使用Java JNDI来修改AD域密码,并重点讲解如何实现免SSL验证的方式。 首先,让我们了解JNDI。JNDI是Java平台的一个接口,它提供了一组API,允许开发者查找和绑定网络资源,如DNS记录、...
本文将详细介绍如何使用Java为Word文档插入水印以及设置保护密码,以确保文档的安全性。 首先,我们需要一个能够操作Microsoft Office文件的Java库,这里推荐使用JACOB库。JACOB(JavaCOM Bridge)是一个Java到COM...
"一些比较有意思的Java小程序"这个标题暗示了我们将会探讨一系列趣味性强、易于理解的Java代码示例,这些示例通常适合Java初学者用来学习和实践编程概念。 在描述中提到的“不错的Java小程序”可能包括各种实用的小...
本示例使用C#构造SOAP信息,通过HttpWebRequest调用java编写的带有Windows身份验证的WebService,代码中详细注释了每行代码的功能与作用; 对应文章:http://blog.csdn.net/cgs_______/article/details/77894599
Java程序设计是软件开发领域中的基础且至关重要的部分,它为开发者提供了强大的工具来构建复杂的应用系统。"200道Java程序设计练习题 PDF" 是一个宝贵的资源,旨在帮助学习者从初级到高级逐步提升Java编程技能。这份...
Java B/S 抽奖程序是一种基于Java技术构建的Web应用程序,专用于实现在线抽奖功能。在B/S(Browser/Server)架构下,用户通过浏览器即可参与抽奖活动,无需安装任何客户端软件,使得部署和使用变得极其便捷。这个...
《Java语言程序设计(一)》是自考Java专业的一门重要课程,旨在帮助学习者掌握Java编程的基础知识和技能。这门课程涵盖了Java语言的基本语法、数据类型、控制结构、类与对象、异常处理、输入输出以及简单的多线程...
标题《Java Web程序设计教程》与描述《Java Web程序设计教程 Java Web程序设计教程》中的知识点主要涵盖了Java Web应用开发领域的核心技术与实践。本书作为21世纪高等学校计算机规划教材,由范立锋与林果园共同编著...
Java数字签名源程序是用于实现数据完整性、身份验证和非否认性的关键技术,它在网络安全中扮演着重要角色。本程序是使用JAVA编程语言编写的,遵循了计算机科学中关于密码学的基本原理。数字签名通常与公钥基础设施...
- **变量与数据类型**:Java有八种基本数据类型,包括整型、浮点型、字符型和布尔型等。同时,Java支持类和对象的概念,可以定义自己的复杂数据类型。 - **控制结构**:包括条件语句(if-else)和循环语句(for、...