`
悠悠晃晃
  • 浏览: 39903 次
  • 性别: Icon_minigender_1
  • 来自: 山东
社区版块
存档分类
最新评论

ASP通过XMLHTTP取数据,还有个ASP操作XML文件

阅读更多
以前写过的一个ASP通过XMLHTTP取数据的东西,留着说不定以后还要用。

<%
const XRPC_RESOLVE_TIMEOUT = 10000 '5000
const XRPC_CONNECT_TIMEOUT = 10000 '500
const XRPC_SEND_TIMEOUT = 15000 '1000
const XRPC_RECEIVE_TIMEOUT = 20000 '10000
const techdataUrl = "https://tdxml.techdata.com/xmlservlet"
const UserName = "500376"
const Password = "97QAMVL"
const TransSetIDCode = "846SEND"
const TransControlID = "10000"
const ResponseVersion = "1.4"
dim LangQtyLowError,techdataErrorInfo
LangQtyLowError = "The product may not be in stock. you can not buy it."
 
function xmlRPC(productIds)
	Dim requestText,objXML,objLst,returnQtys
	requestText = CreateRequestXML(productIds)	
 
	'' Now use the redistributable parser objects alone
	Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
 
	objXML.setTimeouts XRPC_RESOLVE_TIMEOUT, XRPC_CONNECT_TIMEOUT, XRPC_SEND_TIMEOUT, XRPC_RECEIVE_TIMEOUT 
 
	''Call the remote machine the request
	On Error Resume Next
	objXML.open "POST", techdataUrl, false
	objXML.setRequestHeader "Content-Type", "text/xml"
	objXML.send(requestText)
 
	If not objXML.status = 200 Then 
		shoperror "The service is not available, please check hours."
	end if
 
	if objXML.responseText = "Request received outside of server business hours" Then 
		shoperror "The service is not available, please check hours."
	end if
 
	serverResponseText = objXML.responseText
 
	''response.Write serverResponseText
 
	Set LineInfoList=objXML.responseXML.getElementsByTagName("LineInfo")
	for j = 0 To LineInfoList.length-1
 
		Set ErrorInfoList=LineInfoList.Item(j).getElementsByTagName("ErrorInfo")
		if ErrorInfoList.length > 0 Then	
			Set errorList=ErrorInfoList.Item(0).getElementsByTagName("ErrorDesc")
			techdataErrorInfo = errorList.Item(0).text
			shoperror techdataErrorInfo
		end if
 
		Set WhseInfoList=LineInfoList.Item(j).getElementsByTagName("WhseInfo")
		Dim Qtys
		Qtys = 0
		for i = 0 To WhseInfoList.length-1
			Set QtyList=WhseInfoList.Item(i).getElementsByTagName("Qty")
			Qtys = Qtys + QtyList.Item(0).Text			
		next
		IF j = LineInfoList.length-1 Then
			returnQtys = returnQtys & Qtys
		else
			returnQtys = returnQtys & Qtys & ","
		End If
	next
	xmlRPC = returnQtys
 
	Set LineInfoList = Nothing
	Set objXML = Nothing	
end function	
 
function CreateRequestXML(productIds)
	Set objXMLdoc = CreateObject("Microsoft.XMLDOM")
 
	Set rootNode = objXMLdoc.createElement("XML_Availability_Submit")
	objXMLdoc.appendChild(rootNode)
 
	Set HeaderNode = objXMLdoc.createElement("Header")
	rootNode.appendChild(HeaderNode)
 
	Set UserNameNode = objXMLdoc.createElement("UserName")
	UserNameNode.Text = UserName
	HeaderNode.appendChild(UserNameNode)
 
	Set PasswordNode = objXMLdoc.createElement("Password")
	PasswordNode.Text = Password
	HeaderNode.appendChild(PasswordNode)
 
	Set TransSetIDCodeNode = objXMLdoc.createElement("TransSetIDCode")
	TransSetIDCodeNode.Text = TransSetIDCode
	HeaderNode.appendChild(TransSetIDCodeNode)
 
	Set TransControlIDNode = objXMLdoc.createElement("TransControlID")
	TransControlIDNode.Text = TransControlID
	HeaderNode.appendChild(TransControlIDNode)
 
	Set ResponseVersionNode = objXMLdoc.createElement("ResponseVersion")
	ResponseVersionNode.Text = ResponseVersion
	HeaderNode.appendChild(ResponseVersionNode)	
 
	Set DetailNode = objXMLdoc.createElement("Detail")
	rootNode.appendChild(DetailNode)
 
	Dim mystr
	mystr=split(productIds,",")
 
	for i=0 to ubound(mystr) 
		If len(mystr(i)) <> 0 then			
			Set LineInfoNode = objXMLdoc.createElement("LineInfo")
			DetailNode.appendChild(LineInfoNode)
 
			Set AssignedIDNode = objXMLdoc.createElement("AssignedID")
			AssignedIDNode.Text = i
			LineInfoNode.appendChild(AssignedIDNode)
 
			Set RefIDQualNode = objXMLdoc.createElement("RefIDQual")
			RefIDQualNode.Text = "VP"
			LineInfoNode.appendChild(RefIDQualNode)
 
			Set RefIDNode = objXMLdoc.createElement("RefID")
			RefIDNode.Text = mystr(i)
			LineInfoNode.appendChild(RefIDNode)
		End if
 
	next
 
	Set SummaryNode = objXMLdoc.createElement("Summary")
	rootNode.appendChild(SummaryNode)
 
	Set NbrOfSegmentsode = objXMLdoc.createElement("NbrOfSegments")
	SummaryNode.appendChild(NbrOfSegmentsode)
 
	CreateRequestXML = rootNode.xml
	''response.Write CreateRequestXML
	Set objXMLdoc = Nothing
end function
 
Sub checkQtyError (quantity, ccode)
	Qty = xmlRPC(ccode)
	If CInt(Qty) < 1 Then 
		shoperror LangQtyLowError
	End if
	If CInt(Qty) < CInt(quantity) Then
		If CInt(Qty) < 2 Then 		
			shoperror "There are "& Qty&" product in the stock, you can only buy "&Qty&"." 
		Else
			shoperror "There are "& Qty&" products in the stock, you can only buy "&Qty&"." 
		End If
	End if
end sub
 
Sub ShopError (msg)
setsess "shoperror", msg
responseredirect "shoperror.asp"
end sub
%>
分享到:
评论

相关推荐

    asp+xmlhttp+javascript+xml

    【标题】"asp+xmlhttp+javascript+xml" 涉及的核心技术是AJAX(异步JavaScript和...客户端JavaScript通过XMLHTTP对象发起请求,服务端ASP处理请求并返回XML数据,整个过程无缝衔接,提升了网页应用的性能和用户体验。

    xmlhttp+asp+javascript+xml+json

    在压缩包"xmlhttp+asp+javascript+xml+json"中,可能包含了示例代码或者教程,展示了如何在ASP环境中使用XMLHTTP对象与服务器通信,JavaScript处理JSON或XML响应,并在客户端进行数据操作。如果你正面临一个需要使用...

    xmlhttp_asp+javascript+json+xml

    实现通用型基于xmlhttp的ajax模型。 客户端用javascript建立xmlhttp对象, ...服务端用asp编写,通过response.binaryRead()解译上传数据, 处理完成后,把数据格式化为jsString,该方法源于继承json2.0.

    XMLHTTP无刷新自动实时更新数据

    XMLHTTP无刷新自动实时更新数据是一种常见的Web应用程序技术,它利用了AJAX(Asynchronous JavaScript and XML)的核心组件——XMLHttpRequest对象,实现了网页在不重新加载整个页面的情况下,与服务器进行交互并...

    ASP与XML高级编程 pdf

    3. **ASP与XML结合应用**:展示如何在ASP中使用XMLHTTP对象进行异步数据请求,实现AJAX(Asynchronous JavaScript and XML)技术,提升用户体验。 4. **XSLT转换**:讨论XSL(eXtensible Stylesheet Language)和...

    xml_caidan.rar_XML asp

    在ASP中,XML可能被用来定义菜单结构和数据,然后通过ASP解析XML文件,动态生成网页上的菜单。这种方式使得菜单的维护和扩展变得更加方便,因为菜单数据和展示逻辑被分离了。 在XML与ASP的结合使用中,通常涉及以下...

    基于ASP的XML留言本 v1.2.zip

    由于压缩包中的唯一文件名是"132684533960751812",这很可能是一个随机生成的文件名,通常代表XML数据文件或ASP脚本文件。如果是XML文件,它将包含所有留言数据,用XML结构表示;如果是ASP文件,它将包含实现留言本...

    XML技术上传文件

    总结来说,XML技术上传文件利用了XML的二进制数据表示能力、XMLHTTP对象的异步通信特性以及ADO Stream对象对二进制文件的处理功能,提供了一种无需额外组件、更加灵活的文件上传方式。虽然这种方式需要特定的安全...

    基于ASP的xml 留言本 v1.0.zip

    2. **XML数据的解析与操作**:通过DOM接口,ASP可以对XML文档进行各种操作,包括添加、删除、修改节点,以及查找特定数据。例如,使用getElementsByTagName方法查找具有特定标签名的节点,或者用createNode方法创建...

    基于ASP的XML多风格留言本.zip

    综上所述,基于ASP的XML多风格留言本是一个结合了动态服务器脚本与结构化数据存储的Web应用,通过ASP处理用户请求,XML存储和交换数据,实现了留言的增删查改和多种视觉样式。这样的系统设计既保证了数据的灵活性,...

    XMLHTTP

    XMLHTTP,全称为XMLHttpRequest,是JavaScript中一个用于在后台与服务器进行异步数据交换的关键对象。这个技术的出现极大地推动了Web应用的发展,尤其是在AJAX(Asynchronous JavaScript and XML)模式流行之后,...

    基于ASP的下利用XMLHttp实现生成HTML静态文件(带生成进度条).zip

    通过这个项目,开发者不仅可以学习到如何使用ASP进行动态内容处理,还可以了解到如何利用XMLHttp进行异步通信以及如何创建友好的用户反馈机制。这对于提升Web应用的用户体验和性能具有实际意义。此外,此项目还涉及...

    ASP源码—下利用XMLHttp实现生成HTML静态文件(带生成进度条).zip

    - 创建XMLHttp对象:在ASP中,可以通过`Server.CreateObject("Msxml2.XMLHTTP")`或`Server.CreateObject("Microsoft.XMLHTTP")`来实例化XMLHttp对象。 - 发送请求:使用`Open`方法设置请求类型(GET或POST)、URL...

    ASP与XML 高级编程(PDG)2

    在ASP中,可以使用MSXML库来处理XML,这个库包含了处理XML的各种组件,如DOMDocument对象用于加载和操作XML文档,XMLHTTP对象用于异步获取XML数据。此外,ASP.NET框架还提供了更高级别的XML处理工具,如LINQ to XML...

    VFP上传文件到web服务器

    - recvFile_sigle.asp:这可能是一个ASP(Active Server Pages)脚本,用于接收并处理VFP通过XMLHTTP发送的文件。 - sendfile.FXP:可能是一个VFP程序,包含了执行文件上传的具体逻辑。 - sendfile.prg:VFP的程序...

    ASP.NET后台代码实现XmlHttp跨域访问

    为了解决这个问题,开发者通常会采用多种技术手段,其中一种是通过ASP.NET后台代码实现XmlHttp跨域访问。本文将详细介绍如何在ASP.NET应用中实现XmlHttp跨域访问。 #### 一、跨域访问概述 跨域访问主要涉及到同源...

    Asp+XmlHttp实现RssReader

    如何生成动态的XML文档,介于动态文档是ASP格式的,所以必须借助FSO进行XML文件的生成...我这里上传的资源里面包含了用Asp+XmlHttp实现RssReader功能,用ASP生成XML数据文档(RSS订阅)两个功能的代码。希望能给你帮助

    aspxml

    利用ASP与XMLDom进行XML文件的服务器端操作,不仅提供了强大的数据管理能力,还极大地提升了数据处理效率。无论是创建、查询还是修改XML数据,这一组合都展现出了高度的灵活性和实用性。掌握这些技术,对于构建高效...

    xmlhttp调用WebService

    XMLHTTP调用WebService是Web开发中的一个重要技术,它允许客户端(如ASP页面)与服务器端的WebService进行异步数据交互,极大地提升了Web应用的响应速度和用户体验。在本篇文章中,我们将深入探讨XMLHTTP对象、...

Global site tag (gtag.js) - Google Analytics