【问题标题】:vba XMLHTTP get xml from Content Servervba XMLHTTP 从内容服务器获取 xml
【发布时间】:2015-01-26 10:03:28
【问题描述】:

我正在尝试使用 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 

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

【问题讨论】:

    标签: xml vba xmlhttprequest opentext


    【解决方案1】:

    你是哪个版本的?您应该尝试使用其余的 api。可在 2014-09 更新中使用。

    【讨论】:

    • 我试过了,但什么都做不了..也许我做错了什么除了他们为 rest api 提供的页面之外,我没有找到任何指南。 Content Server 10,更新 9 版本 10.0.0.2314 我设法通过在出现错误时终止 iexplore.exe 进程来处理一些自动化,但仍然很粗略
    【解决方案2】:
    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 行之前。这足以欺骗服务器吗?

    【讨论】:

    • 我试过了,没用。顺便说一句,我使用的是 IE8。我们还安装了 chrome。我真的没有得到奇怪的 javascript not supported 回复。我希望我在发送请求时知道真正发生了什么。
    猜你喜欢
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 2011-01-22
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多