`
悠悠晃晃
  • 浏览: 39325 次
  • 性别: 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

    此为ajax的测试模型,通讯内容为xml形式的string; 客户端采用javascript提交xmlhttp请求; 服务端为asp进行处理

    xmlhttp_asp+javascript+json+xml

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

    xmlhttp+asp+javascript+xml+json

    不推荐下载,该版本存在较多问题 推荐下载笔者的新发布的该版本,名称为xmlhttp_asp+javascript+json+xml

    Asp+XmlHttp实现RssReader

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

    VFP xmlHTTP应用实例

    VFP xmlHTTP应用实例,搭建API,三层结构 内附测试环境及asp代码

    asp下利用XMLHTTP 从其他页面获取数据的代码

    利用XMLHTTP 从其他页面获取数据 我们在编写ASP代码的时候,大家都知道可以通过post或者get获得form表单的数据,那么我们如何直接获得其他页面上的数据呢?这就要借助xmlhttp协议了。xmlhttp是xmldom技术的一部分。...

    用asp+xmlhttp编写web采集程序

    用asp+xmlhttp编写web采集程序

    利用ASP发送和接收XML数据的处理方法与代码

    因为要做移动梦网WAP的一些接口,所以要用到这种方式,接下来会有ASP.net版本的,这个是ASP版本的,利用了MSXML2.XMLHTTP对像。 request.asp 代码如下:dim Https set Https=server.createobject(“MSXML2....

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

     好了,通过第三章的学习,我们已经了解了一些XML和DTD的基本术语,但是我们还不知道怎样来写这些文件,需要遵循什么样的语法,在下一章,将重点介绍有关撰写XML和DTD文档的语法。 第四章 XML语法 七.DTD的语法...

    asp.net知识库

    ADO.NET 2.0 大批量数据操作和多个动态的结果集 ADO.NET 2.0 异步处理 在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+...

    在VC中使用XMLHTTP

    主 题: 在VC中使用XMLHTTP,怎样初始化,怎样建立连接?在线等。 我的一段代码在.NET中用C#已经调通,我想搬到VC++ 6.0上,但不知道任何各种写法规则。 C# 中为: MSXML2.XMLHTTP xmlHttp_ = new ...

    Asp+AJAX静态分页 亲测 可用

    //打开与服务器的连接,其中get为连接方式,server.asp为要连接的页面,有两个参数,其中第一个参数page为需要返回数据的页数,第二个参数n为一个随机数,这样每次发送的URL都会不一样,相当于都向服务器发出一个新...

    asp.net学习积累的代码段

    读取xml数据文件代码.txt 对于长时间装载的ASP.NET页面如何在客户端浏览器中显示进度?).txt 根据不同的dropdownlist选择值选择数据.txt 购物车代码.txt 关于TextBox和Label控件显示数据的问题.在线等.txt 广告代码....

    服务器XMLHTTP(Server XMLHTTP in ASP)基础知识

    服务端 XMLHTTP,通常会用在获取远程主机的网页或者其他内容,新闻聚合系统一般就是使用服务端 XMLHTTP 对象来获取要聚合的 Feed 的内容,然后使用 XMLDOM 对象来分析 Feed 的内容,取出新闻的标题

    .NET机试题目(全)

    结构、程序控制语句、面向对象编程、委托、事件、数组、集合、 泛型、反射、异常、文件操作、流、XML的处理、ADO.NET、ADO.NET、JS数据类型及流程控制 、JS函数与对象、JS DOM与特效、ASP.NET服务器控件 js、ASP.NET...

    AspBox-v1.3.2工具API

    AspBox是一个方便快速开发ASP框架,AspBox提供了大量实用的ASP通用过程及方法和子类,可以简化大部分的ASP操作。 AspBox还可以进行拓展子类对象以增强自身功能。封装严谨,层层嵌套,提高了代码重复利用多次利用。 ...

    用 ajax + asp.net 采集文章

    用 ajax + asp.net 采集文章 试验型的项目。 原先用多线程来采集,但是觉得多线程采集要显示采集进度很麻烦。 后来改为单线程,边采集边显示进度。又发现出现采集错误的时候不方便作停止。 干脆用ajax 加 asp.net ...

    使用xmlHttp结合ASP实现网页的异步调用

    通过xmlHttp和ASP的结合,我们可以轻松完成网页的异步调用。代码如下:1.新建Display.asp(这是前台显示页面)注意xmlhttp.readyState的4个属性1:LOADING;2:LOADED;3:INTERACTIVE;4:COMPLETED &lt;&#37;@ Language=...

    Asp 使用 Microsoft.XMLHTTP 抓取网页内容并过滤需要的

    Asp 使用 Microsoft.XMLHTTP 抓取网页内容(没用乱码),并过滤需要的内容 示例源码: 代码如下: &lt;&#37; Dim xmlUrl,http,strHTML,strBody xmlUrl = Request.QueryString(“u”) REM 异步读取XML源 Set ...

Global site tag (gtag.js) - Google Analytics