问题描述
我在这里真的很艰难,这是我第一次使用 ASMX WebServices,所以我正在对此进行试验和错误,所以请与我保持联系。
我已经能够使用下面的 ASP Classic 连接并登录到该服务,但是现在“撞墙”了,我无法在这里或通过谷歌搜索找到解决方案,可能是因为我一个菜鸟,不知道该照顾什么。
过程或函数“stp_ws_GetWebServiceSessionBySessionID”需要未提供的参数“@WebServiceSessionID”
我目前的脚本:
Set oXmlHTTP = CreateObject("Microsoft.XMLHTTP")
oXmlHTTP.Open "POST","https://api.domain.com/services/ws3.asmx",False
oXmlHTTP.setRequestHeader "Content-Type","text/xml; charset=utf-8"
oXmlHTTP.setRequestHeader "SOAPAction","http://sub.domain.com/GetCurrentCallStats4"
SOAPRequest = _
"<?xml version=""1.0"" encoding=""utf-8""?>" &_
"<soap12:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope"">" &_
"<soap12:Body>" &_
"<Login xmlns=""http://sub.domain.com/Login"">" &_
"<UserIdentifier>a81aeXX-XXXXXXXXXXX-XXX4bec7</UserIdentifier>" &_
"<PrivateKey>71e3aXX-XXXXXXXXXXX-XXX9e2</PrivateKey>" &_
"<PublicKey>XD87XX-XXXXXXXXXXX-XXXC45</PublicKey>" &_
"</Login>" &_
"<GetCurrentCallStats4Response xmlns=""https://api.domain.com/services/ws3.asmx"">" &_
"<GetCurrentCallStats4Result>" &_
"<StatResult4>" &_
"<CustomerID>int</CustomerID>" &_
"<SiteID>int</SiteID>" &_
"<BrandID>int</BrandID>" &_
"<CategoryID>int</CategoryID>" &_
"<Category>string</Category>" &_
"<TotalCases>int</TotalCases>" &_
"<NewSince>dateTime</NewSince>" &_
"<CasesNewSince>int</CasesNewSince>" &_
"<CasesDue>int</CasesDue>" &_
"</StatResult4>" &_
"</GetCurrentCallStats4Result>" &_
"</GetCurrentCallStats4Response>" &_
"</soap12:Body>" &_
"</soap12:Envelope>"
oXmlHTTP.send SOAPRequest
Response.Write oXmlHTTP.responseText
如何“捕获”@WebServiceSessionID 并将其再次发送给 WS?
*如果有人也能帮助我下一步如何从服务中捕获数据响应,我将非常感激:-)
更新!他们提供的小文档
对于每个 Web 服务键,您必须重复以下步骤来收集类别级别的统计信息:
在 https://api.domain.com/services/ws3.asmx 使用网络服务:
- 调用
Login()
,并保存返回的会话标识符 - 使用会话标识符和私钥调用
GetSite()
- 保存 Name 值 - Call
GetCurrentCallStats3()
– 这将返回类别列表/数组,每个类别具有不同的监视器值。- NewCasesSince – 我们使用当天的开始,较旧的值使用更多资源,并可能导致呼叫因过度使用资源而终止。 日期的格式是 YYYY-MM-DD HH:mm 例如2017-09-30 00:00 您可以将其选择为最近的日期/时间 - 例如1 小时前显示过去一小时内的新案例。
- HoursUntilDue – 这控制结果 CasesDueInXMinutes 中返回的值我们的监视器将此值设置为 4 - 未来 4 小时内到期的案例计数。
- 致电
logout()
解决方法
从 Visual Studio 创建一个 Web 服务引用,它会从 URL 为您创建一个用于调用 Web 服务的类定义?研究服务参考。 这将帮助您发送和检索您可能需要的数据。或者甚至可以尝试免费的 SOAPUI,它允许您为 Web 服务设置测试客户端,以便您可以查看数据是如何传送和返回的,以及您丢失的数据。 https://www.soapui.org/