URL 授权访问另外一种方法,利用 Java 1.1 访问密码保护的 URL

http://blog.csdn.net/jserkang/archive/2005/03/13/318623.aspx

 

接入9588短信网关(http协议),9588的iis上的短信服务url需要身份验证,

在程序中使用的URL:http://UserName:Password@000.000.000.000/SmbpHttpAgent/

接入java代码:

URL url = new URL(buf.toString()); System.out.println("****"+buf.toString() );
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
String password = "user:password;
BASE64Encoder base = new BASE64Encoder();
String encodedPassword = base.encode(password.getBytes());
conn.setRequestProperty("Authorization", "Basic " + encodedPassword);
conn.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while(in.readLine()!=null){ out.println(in.readLine()); bool = true; }

接入asp代码

function SendMessage(mobile,strMessage)
 Dim str,url,postmsg
 url="http://000.000.000.00/SmbpHttpAgent/Sxxxxxxx
 
 Set objHTTP = Server.CreateObject("MSXML2.XMLHTTP")
Set xmlDOC =Server.CreateObject("MSXML.DOMDocument")

'设置参数及其值
strRequest = url1
objHTTP.Open "POST", postmsg, False,"接入帐号","接入密码"
'设置这个Content-Type很重要
objHTTP.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.Send(strRequest)
bOK = xmlDOC.load(objHTTP.responseXML)
'看看状态值
if objHTTP.Status=200 then
xmlStr = xmlDOC.xml
Response.Write xmlStr
else
Response.Write objHTTP.Status&"<br>"
Response.Write objHTTP.StatusText
end if
end function

John Zukowski

 

摘要
在上一篇的tip, Java Tip 46, 描述了如何利用Java 程序访问密码保护的 URL,通过 Java 1.2 的新的 Authenticator 类。如果你或者你的用户转到 Java 1.1 下该怎么办呢?基本上,没有 Java 1.2,你会失掉 Authenticator带来的好处。但别失望! 这篇文章将展示 Java 1.1 小程序片和应用程序如 何访问需要输入用户名称和密码的R访问需要输入用户名称和密码的 URLs.(1250字)

非常感谢 David Wallace Croft,他跟踪并修复了 Base64Converter 类的原始版本的一个 bug, ?经过修改的类的源代码在这篇短文中列出。
在上一篇技巧中,我们引入了如下的场景:你使用喜欢的浏览器在网上冲浪,并遇到了一个URL 需要代理或HTTP服务器的授权。在屏幕上出现的是一个标准的对话框,必须在其中输入你的用户名称和密码来访问这个站点。为了更清楚起见,屏幕上的对话框如下图所示。

 

在 Java 程序中,你将发现一个问题:当你试图从 InputStream 中读取和URL相关的信息时,一个 FileNotFoundException将会抛出。

从 Java 1.2开始,可以利用 Authenticator 类,如上面所提到的,在 Java Tip 46 你已经学到。然而,在比Java 1.2 早的版本
中,在试图从 URL 中读取数据之前首先需要知道所访问的 URL 是否是受密码保护的。如果 URL 是密码保护的,必须手动的确认每
个URL 的密码保护响应,然后才能访问所需要的内容。密码保护响应以授权要求属性的形式出现。这种属性通过 URLConnection 和?br /> URL相关联。一旦授权要求被满足,当到达某个 URL 时,上面的信息是可以被访问的。

授权字符有着如下的形式“Authorization: Basic 用户名:密码,”其中,基本授权字段以Base64格式编码。(编码格式的描述可以
可以在 RFC 1113 中得到。一个RFC是一个“requst for comment”文档,基本上描述某些Internet 标准,在本例中,#1113 描述
了消息加密和授权程序,参见下面的 资源 ),为了编码,可以使用 sun.misc package 中的 BASE64Encoder 类,或者创建自己的类。
?

为了建立这个访问,只需简单的确认 URL's URLConnection 是否有“授权”要求属性。下面的步骤描述了怎样进行。

步骤1:创建 URL

URL url = new URL (urlString);

步骤2:为specificURL 获得用户名称和密码

步骤3:将它们放入String并用冒号":"分开

String userPassword = theUsername + ":" + thePassword;

步骤4:对字符串进行编码

String encoding = new sun.misc.BASE64Encoder().encode (userPassword.getBytes());

步骤5: 通过 URL 创建 URLConnection

URLConnection uc = url.openConnection();

步骤6:为URLConnection 设置“授权”要求属性

uc.setRequestProperty ("Authorization", "Basic " + encoding);

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jserkang/archive/2005/03/13/318623.aspx

 

时间: 2025-01-29 13:21:50

URL 授权访问另外一种方法,利用 Java 1.1 访问密码保护的 URL的相关文章

js判断url是否有效的两种方法

本篇文章主要是对js判断url是否有效的两种方法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 方法一:(仅适用于ie)    代码如下: function CheckStatus(url)         {             XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP")             XMLHTTP.open("HEAD",url,false)             XMLHT

使用JavaScript获取URL中的参数(两种方法)_javascript技巧

本文给大家分享两种方法使用js获取url中的参数,其中方法二是使用的正则表达式方法,大家可以根据需要选择比较好的方法,废话不多说了,直接看详细介绍吧. 方法一: //取url参数 var type = request("type") function request() { var query = location.search; var paras = arguments[0]; if (arguments.length == 2) { query = arguments[1]; }

Ajax实现跨域访问的三种方法

本文给大家介绍了ajax实现跨域访问的3种解决方案,非常的实用,个人比较推荐第三种,小伙伴们可以着重看下.     一.什么是跨域 我们先回顾一下域名地址的组成: http:// www . google : 8080 / script/jquery.js http:// (协议号) www (子域名) google (主域名) 8080 (端口号) script/jquery.js (请求的地址) * 当协议.子域名.主域名.端口号中任意一各不相同时,都算不同的"域". * 不同的域

ASP中页面限权访问的两种方法

访问|页面 在设计网页时,经常遇到某些页面需限权访问的情况.比如,一个公司的某些产品只让某一或某些供应商或客户浏览.那么,我们如何实现这一功能呢?本文,笔者将向读者介绍几种限制客户访问权限的方法.   通常,我们在设计过程中会面临三种情况:某一页面只让某一用户浏览.某一页面只让某些用户浏览和某些页面只让某些用户浏览.第一种情况很简单,笔者不再叙述,下文将详细介绍后两种情况的设计方法.    一.某一页面只让某些用户浏览 将这些客户的信息保存在数据库中,若能在数据库中检索到客户输入的姓名和密码就允

Ajax实现跨域访问的三种方法_AJAX相关

一.什么是跨域 我们先回顾一下域名地址的组成: http:// www . google : 8080 / script/jquery.js   http:// (协议号)                www  (子域名)              google (主域名)                8080 (端口号) script/jquery.js (请求的地址) * 当协议.子域名.主域名.端口号中任意一各不相同时,都算不同的"域". * 不同的域之间相互请求资源,就叫&

asp.net下检测远程URL是否存在的三种方法_实用技巧

复制代码 代码如下: private void Page_Load(object sender, System.EventArgs e) { string url1 = "http://s.jb51.net/"; string url2 = "yun_qi_img/logo.gif"; Response.Write("<li>方法1:"); Response.Write(url1 + " 存在:" + UrlExi

php全面获取url地址栏参数的四种方法

php教程 全面获取url地址栏参数多种方法 <?php //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br>"; //获取网页地址 echo $_SERVER['PHP_SELF']."<br>"; //获取网址参数 echo $_SERVER["QUERY_STRING"]."<br>"; //来源网页的详细地址 echo $_SERVER['H

ASP.NET中利用Segments取得URL的文件名的一种方法分享_实用技巧

例如:http://www.abc.com/book/list.aspx,则对应取到list.aspx.一般我们可以这样写: 复制代码 代码如下: string url = Request.Url.ToString(); string r = url.Substring(url.LastIndexOf('/') + 1); Response.Write(r); 上述方法 一般情况下是可以的,但如果URL地址带参数则会有问题.比如加上?id=3&name=Tim,则最后取得的是list.aspx?

PHP判断远程url是否有效的几种方法

  前提 需要判断远程URL是否有效,远程url包括远程图片,网页,视频等等元素 解决办法: 使用PHP解决 使用file_get_contents函数,不过优缺点如果url无法访问,会出现终止程序问题 使用curl返回,然后判断是否正确执行 使用get_headers函数,根据HTTP返回值查看是否有200 使用js解决: 使用原生的js函数ActiveXObject,仅支持ie内核的浏览器 使用jq扩展 本文主要介绍PHP解决办法中的第三种,这个方法很少用到,但是感觉又起来还不错, get_