服务端XMLHTTP(ServerXMLHTTP in ASP)基本应用(下)
接着上一篇《服务端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)基本应用(上)
by xujiwei
http://www.xujiwei.com
0 条评论。