高分向高手請教XMLHTTP大問題﹗

foreveriu 2003-03-14 10:09:09
大家好﹕
我在客戶端整理好了一個XMLDOM對象﹕objdom﹐現用XMLHTTP傳送到服務器端用以建立一個XML文件﹐在以下的代碼中﹐有几點疑問﹐請大家幫忙﹗
(我的環境是﹕win2k server IIS)
...
var t=new Date();
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttp.open(method,url,async,userid,password);
xmlHttp.setRequestHeader(header_name,value);
xmlHttp.send(objdom.xml);
...

1.請問上面的代碼中的xmlHttp.open方法的userid和password分別是指哪里的userid和password(我認為是WEB站台上匿名存取的那個帳號和密碼﹐不知是否正確)
2.xmlHttp.setRequestHeader方法的header_name和value參數應如何寫﹐假如以big5碼為例(我寫的header_name是"Content-Type"﹐value是"application/x-www-form-urlencoded;charset:big5"﹐不知是否正確)

謝謝﹗特急﹗﹗
...全文
72 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
coffee_cn 2003-03-18
  • 打赏
  • 举报
回复
Using Microsoft's XMLHTTP Object to Get Data From Other Web Pages
By Richard Lowe


--------------------------------------------------------------------------------

There are several popular commercial COM components that retrieve data from other web sites via HTTP requests, such as AspTear and AspHTTP. There is another lesser know option from Microsoft, however. Microsoft's suite of XML DOM (Document Object Model) components includes the XMLHTTP object. This object was originally designed to provide client-side access to XML documents on remote servers through the HTTP protocol. It exposes a simple API which allows you to send requests (yes, even POSTS) and get the resultant XML, HTML or binary data!

(There is one side note at the time of this writing: Microsoft's MSXML 3.0 has just been released. It contains a server-side specific version of the XMLHTTP component for use in web or application servers. Therefore, unless you download v3.0 you are going to have to use the original version, which shouldn't be a problem for most applications.)

Getting Started
If you've been keeping up with versions of Internet Explorer, you probably have some version of MSXML installed. If you need to install it, you can either install the latest version of MDAC or the MSXML component itself. If you don't have it installed, you may get the error: Invalid ProgID when you execute Server.CreateObject("Microsoft.XMLHTTP").

The most basic function of XMLHTTP is simply returning the entire text of a web page, here is the syntax:

<%
Response.Buffer = True
Dim objXMLHTTP, xml

' Create an xmlhttp object:
Set xml = Server.CreateObject("Microsoft.XMLHTTP")
' Or, for version 3.0 of XMLHTTP, use:
' Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")

' Opens the connection to the remote server.
xml.Open "GET", "http://www.4Guysfromrolla.com/", False

' Actually Sends the request and returns the data:
xml.Send

'Display the HTML both as HTML and as text
Response.Write "<h1>The HTML text</h1><xmp>"
Response.Write xml.responseText
Response.Write "</xmp><p><hr><p><h1>The HTML Output</h1>"

Response.Write xml.responseText

Set xml = Nothing
%>

This code will write the entire 4GuysFromRolla.com default page to the browser that requests it. The responseText property contains a the entire text of the page returned as a string.

Getting Binary Data
It's extremely simple to return binary data using the XMLHTTP object, the syntax is exactly the same, but you return the respondsBody property, which is an array of unsigned bytes:

<%
Response.Buffer = True
Dim objXMLHTTP, xml
Set xml = Server.CreateObject("Microsoft.XMLHTTP")

xml.Open "GET", "http://www.4guysfromrolla.com/webtech/code/mitchell-pres.zip", False

xml.Send

' Add a header to give it a file name:
Response.AddHeader "Content-Disposition", "attachment;filename=mitchell-pres.zip"

' Specify the content type to tell the browser what to do:
Response.ContentType = "application/zip"

' Binarywrite the bytes to the browser
Response.BinaryWrite xml.responseBody

Set xml = Nothing
%>

In Part 1 we examined how to use XMLHTTP to get simple HTML and binary data. In this part we'll look at how to POST data and how to request secured pages via XMLHTTP!

Posting Data
It's also very easy to do POST requests to remote web sites. This example searches the Internet Movie Database for "The Usual Suspects".

<%
Response.Buffer = True
Dim objXMLHTTP, xml
Set xml = Server.CreateObject("Microsoft.XMLHTTP")

' Notice the two changes in the next two lines:
xml.Open "POST", "http://www.imdb.com/Find", False
xml.Send "select=All&for=The Usual Suspects"

Response.Write xml.responseText

Set xml = Nothing
%>

The Open method takes the argument POST instead of GET and the Send method contains the POST data. POST data has exactly the same syntax as query string data, only you don't need to include the ? at the beginning of the string. The only way to know what to post is to examine the form doing the posting, and see what the elements are and what sort of values they submit.

Accessing Secure Sites
XMLHttp can also access data that requires authentication. The Open method also accepts two optional arguments for a user name and password, as seen in the example below. Note that this user name and password only applies to web sites that request credentials (using the WWW-Authenticate header) like IIS does when you have Basic and/or challenge-response authentication enabled. For sites that use a database-style authentication (like Hotmail or Yahoo mail) you should simply post the user name and password like you would post any other data.

<%
Response.Buffer = True
Dim objXMLHTTP, xml

Set xml = Server.CreateObject("Microsoft.XMLHTTP")

xml.Open "GET", "http://www.4Guysfromrolla.com/", False, "Richard", "Welcome"

' Actually Sends the request and returns the data:
xml.Send

Response.Write xml.responseText

Set xml = Nothing
%>

There are other methods and properties of the Microsoft XMLHttp component, but the vast majority of uses only requires the ones discussed in the examples above.

Happy Programming!

孟子E章 2003-03-18
  • 打赏
  • 举报
回复
userid和password
为w2k里域用户,domainName\userName,userPwd
xmlHttp.setRequestHeader("Content-Type","text/html;charset=big5")
foreveriu 2003-03-18
  • 打赏
  • 举报
回复
謝謝。

基本的方法參數我也知道﹐我主要想了解的是﹕
1。xmlHttp.open方法的userid和password分別是指哪里的userid和password
2.xmlHttp.setRequestHeader方法的header_name和value參數具體應如何寫(以big5碼為例)
par 2003-03-14
  • 打赏
  • 举报
回复
2.xmlHttp.setRequestHeader方法:


http://www.csdn.net/Develop/article/16%5C16493.shtm
par 2003-03-14
  • 打赏
  • 举报
回复
XMLHttpRequest物件的open函式可以接受的引數

引數 型態 說明
Method String HTTP函式,用以開啟連線,例如GET、POST、PUT或PROPFIND。
Url String 這個URL可以是絕對位置或相對位置,例如http://Myserver / Mypath/ 或 /Mypath/xml/。
Async Boolean 標示呼叫是否為非同步,預設值是true(呼叫立刻傳回)。
User String用以識別的使用者姓名,若此引數是NULL或沒給,及網站要求再識別,此component會顯示登入視窗。
Password String 用以識別的密碼,若此引數是NULL或沒給,則會被忽略。

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧