vba XMLHTTP从Content Server获取xml

时间:2014-11-27 18:22:39

标签: xml vba xmlhttprequest opentext

我尝试使用url从Opentext恢复Content Server中的XML。这是我正在使用的代码的一部分。 wURL是:https://company.domain/company/cs.exe/?func=ll&objId=999999&objAction=xmlexport

Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.Open "GET", wURL, False    
objXMLHTTP.Send 

xmldoc.Load objXMLHTTP.responseXML
Set xmlNodeList = xmldoc.getElementsByTagName("llnode")

我收到了这个回复:

?objXMLHTTP.responsetext = 
 <html><body onload="document.forms[0].submit()"><noscript><p><strong>Note:</strong> Since your 
 browser does not support JavaScript,you must press the Continue button once to proceed.</p>        
 </noscript><form action=wURL method="post"><div><input type="hidden" name="OTDSTicket" value="

我发现如果在执行函数之前通过IE访问URL,它会将XML加载到xmlNodeList中。我尝试使用导航到URL的IE对象来自动化该过程,但它不可行,因为我需要查看500+ XML并最终IE返回自动化错误。

我想通过在调用我的函数之前访问URL,我以某种方式验证或创建连接,从而能够加载XML。我想知道是否可以通过代码以可靠的方式重新创建身份验证。

我也尝试过:

objXMLHTTP.Open "GET", wURL, False, myUserName, myPW 

凭借我的凭据,但它没有改变任何东西。谢谢。

2 个答案:

答案 0 :(得分:0)

objXMLHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; .NET4.0E; BCD2000; BCD2000)"

这告诉服务器你是IE8(即使你不是)。把它放在objXMLHTTP.Send行之前。这足以欺骗服务器吗?

答案 1 :(得分:0)

你在哪个版本?你应该尝试使用其余的api。适用于2014-09更新。