网络编程
位置:首页>> 网络编程>> JavaScript>> 服务端XMLHTTP(ServerXMLHTTP in ASP)基本应用(下)

服务端XMLHTTP(ServerXMLHTTP in ASP)基本应用(下)

作者:xujiwei 来源:HotHeart's BLOG 发布时间:2008-11-11 12:59:00 

标签:XMLHTTP,open,XML,文档,responseXML

接着上一篇《服务端XMLHTTP(ServerXMLHTTP in ASP)基本应用(上)》继续讲讲ServerXMLHTTP的基本应用。

3. 请求使用HTTP认证的页面

呃,虽然说目前使用HTTP基本认证的已经少之又少,但是,总该知道ServerXMLHTTP有这么一个功能,可以直接实现HTTP基本认证。

在ServerXMLHTTP对象的open中,我们通常用到的只是它的前3个参数,即method、uri、async,但事实上,它还有另外两个可选参数,即用于HTTP基本认证的username及password。

那么,如果某天,我们要使用ServerXMLHTTP访问某个使用HTTP基本认证的网站,并且我们已经有了认证所需要的用户名及密码,那么可以使用以下密码来访问需要认证的内容:

程序代码:

<%@LANGUAGE="JScript" CODEPAGE="65001"%> 
<% 
// code from xujiwei 
// http://www.xujiwei.cn 
// 访问www.google.cn并不需要HTTP认证,这里只是作为一个演示 
var url = "http://www.google.cn"; 
var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.5.0"); 
// 用户名和密码分别为username和password 
xmlhttp.open("GET", url, false, "username", "password"); 
xmlhttp.send(""); 
Response.BinaryWrite(xmlhttp.responseBody); 
xmlhttp = null; 
%>

4. 使用responseXML属性

有时候,我们所需要的结果并不是文本的,而是一个XML文档,譬如目前最常用的RSS。这个时候,responseXML属性就是我们的不二选择了。

使用responseXML属性所得到的对象,就是一个DOMDocument对象,这个对象可以使用诸如selectNodes、selectSingleNode这样的方法来操作XML文档对象。

例如,我们可以利用ServerXMLHTTP抓取新浪新闻的RSS并显示出来:

程序代码:

<%@LANGUAGE="JScript" CODEPAGE="65001"%> 
<% 
// code from xujiwei 
// http://www.xujiwei.cn 
// 新浪新闻的RSS地址 
var url = "http://rss.sina.com.cn/news/marquee/ddt.xml"; 
var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.5.0"); 
xmlhttp.open("GET", url, false); 
xmlhttp.send(""); 
var xml = xmlhttp.responseXML; 
Response.Write("<h1>" + xml.selectSingleNode("/rss/channel/title").text + "</h1>"); 
var items = xml.selectNodes("/rss/channel/item"); 
for(var i = 0; i < items.length; i++) { 
    Response.Write("<h3>" + items[i].selectSingleNode("title").text + "</h3>"); 
    Response.Write("<small>" + items[i].selectSingleNode("pubDate").text + "</small>"); 
    Response.Write("<div>" + items[i].selectSingleNode("description").text + "</div><hr />"); 

items = null; 
xmlhttp = null; 
%>

这些如果弄明白了,写一个RSS新闻聚合器就不是难事了。当然XMLDOM操作就不在本系列的范围之类了。

5. to be continued

呃,这篇其实有点废话了。隔得有点久,都快忘了该写什么了。

接下来会写写稍微进阶点的操作。

系列目录:

1. 服务器XMLHTTP(Server XMLHTTP in ASP)基础

2. 服务端XMLHTTP(ServerXMLHTTP in ASP)基本应用(上)

3. 服务端XMLHTTP(ServerXMLHTTP in ASP)基本应用(下)

4.服务端XMLHTTP(ServerXMLHTTP in ASP)进阶应用-User Agent伪装

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com